123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588 |
- /*
- * tdi.h
- *
- * TDI user mode definitions
- *
- * This file is part of the w32api package.
- *
- * Contributors:
- * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
- #ifndef __TDI_H
- #define __TDI_H
- #include "ntddtdi.h"
- #include "tdistat.h"
- #include "netpnp.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Basic types */
- typedef LONG TDI_STATUS;
- typedef PVOID CONNECTION_CONTEXT;
- typedef struct _TDI_CONNECTION_INFORMATION {
- LONG UserDataLength;
- PVOID UserData;
- LONG OptionsLength;
- PVOID Options;
- LONG RemoteAddressLength;
- PVOID RemoteAddress;
- } TDI_CONNECTION_INFORMATION, *PTDI_CONNECTION_INFORMATION;
- typedef struct _TDI_REQUEST {
- union {
- HANDLE AddressHandle;
- CONNECTION_CONTEXT ConnectionContext;
- HANDLE ControlChannel;
- } Handle;
- PVOID RequestNotifyObject;
- PVOID RequestContext;
- TDI_STATUS TdiStatus;
- } TDI_REQUEST, *PTDI_REQUEST;
- typedef struct _TDI_REQUEST_STATUS {
- TDI_STATUS Status;
- PVOID RequestContext;
- ULONG BytesTransferred;
- } TDI_REQUEST_STATUS, *PTDI_REQUEST_STATUS;
- typedef struct _TDI_CONNECT_REQUEST {
- TDI_REQUEST Request;
- PTDI_CONNECTION_INFORMATION RequestConnectionInformation;
- PTDI_CONNECTION_INFORMATION ReturnConnectionInformation;
- LARGE_INTEGER Timeout;
- } TDI_REQUEST_CONNECT, *PTDI_REQUEST_CONNECT;
- typedef struct _TDI_REQUEST_ACCEPT {
- TDI_REQUEST Request;
- PTDI_CONNECTION_INFORMATION RequestConnectionInformation;
- PTDI_CONNECTION_INFORMATION ReturnConnectionInformation;
- } TDI_REQUEST_ACCEPT, *PTDI_REQUEST_ACCEPT;
- typedef struct _TDI_REQUEST_LISTEN {
- TDI_REQUEST Request;
- PTDI_CONNECTION_INFORMATION RequestConnectionInformation;
- PTDI_CONNECTION_INFORMATION ReturnConnectionInformation;
- USHORT ListenFlags;
- } TDI_REQUEST_LISTEN, *PTDI_REQUEST_LISTEN;
- typedef struct _TDI_DISCONNECT_REQUEST {
- TDI_REQUEST Request;
- LARGE_INTEGER Timeout;
- } TDI_REQUEST_DISCONNECT, *PTDI_REQUEST_DISCONNECT;
- typedef struct _TDI_REQUEST_SEND {
- TDI_REQUEST Request;
- USHORT SendFlags;
- } TDI_REQUEST_SEND, *PTDI_REQUEST_SEND;
- typedef struct _TDI_REQUEST_RECEIVE {
- TDI_REQUEST Request;
- USHORT ReceiveFlags;
- } TDI_REQUEST_RECEIVE, *PTDI_REQUEST_RECEIVE;
- typedef struct _TDI_REQUEST_SEND_DATAGRAM {
- TDI_REQUEST Request;
- PTDI_CONNECTION_INFORMATION SendDatagramInformation;
- } TDI_REQUEST_SEND_DATAGRAM, *PTDI_REQUEST_SEND_DATAGRAM;
- typedef struct _TDI_REQUEST_RECEIVE_DATAGRAM {
- TDI_REQUEST Request;
- PTDI_CONNECTION_INFORMATION ReceiveDatagramInformation;
- PTDI_CONNECTION_INFORMATION ReturnInformation;
- USHORT ReceiveFlags;
- } TDI_REQUEST_RECEIVE_DATAGRAM, *PTDI_REQUEST_RECEIVE_DATAGRAM;
- typedef struct _TDI_REQUEST_SET_EVENT {
- TDI_REQUEST Request;
- LONG EventType;
- PVOID EventHandler;
- PVOID EventContext;
- } TDI_REQUEST_SET_EVENT_HANDLER, *PTDI_REQUEST_SET_EVENT_HANDLER;
- #define TDI_RECEIVE_BROADCAST 0x00000004
- #define TDI_RECEIVE_MULTICAST 0x00000008
- #define TDI_RECEIVE_PARTIAL 0x00000010
- #define TDI_RECEIVE_NORMAL 0x00000020
- #define TDI_RECEIVE_EXPEDITED 0x00000040
- #define TDI_RECEIVE_PEEK 0x00000080
- #define TDI_RECEIVE_NO_RESPONSE_EXP 0x00000100
- #define TDI_RECEIVE_COPY_LOOKAHEAD 0x00000200
- #define TDI_RECEIVE_ENTIRE_MESSAGE 0x00000400
- #define TDI_RECEIVE_AT_DISPATCH_LEVEL 0x00000800
- #define TDI_RECEIVE_CONTROL_INFO 0x00001000
- /* Listen flags */
- #define TDI_QUERY_ACCEPT 0x00000001
- /* Options used for both SendOptions and ReceiveIndicators */
- #define TDI_SEND_EXPEDITED 0x0020
- #define TDI_SEND_PARTIAL 0x0040
- #define TDI_SEND_NO_RESPONSE_EXPECTED 0x0080
- #define TDI_SEND_NON_BLOCKING 0x0100
- #define TDI_SEND_AND_DISCONNECT 0x0200
- /* Disconnect Flags */
- #define TDI_DISCONNECT_WAIT 0x0001
- #define TDI_DISCONNECT_ABORT 0x0002
- #define TDI_DISCONNECT_RELEASE 0x0004
- /* TdiRequest structure for TdiQueryInformation request */
- typedef struct _TDI_REQUEST_QUERY_INFORMATION {
- TDI_REQUEST Request;
- ULONG QueryType;
- PTDI_CONNECTION_INFORMATION RequestConnectionInformation;
- } TDI_REQUEST_QUERY_INFORMATION, *PTDI_REQUEST_QUERY_INFORMATION;
- /* TdiRequest structure for TdiSetInformation request */
- typedef struct _TDI_REQUEST_SET_INFORMATION {
- TDI_REQUEST Request;
- ULONG SetType;
- PTDI_CONNECTION_INFORMATION RequestConnectionInformation;
- } TDI_REQUEST_SET_INFORMATION, *PTDI_REQUEST_SET_INFORMATION;
- typedef TDI_REQUEST_SET_INFORMATION TDI_REQ_SET_INFORMATION, *PTDI_REQ_SET_INFORMATION;
- typedef union _TDI_REQUEST_TYPE {
- TDI_REQUEST_ACCEPT TdiAccept;
- TDI_REQUEST_CONNECT TdiConnect;
- TDI_REQUEST_DISCONNECT TdiDisconnect;
- TDI_REQUEST_LISTEN TdiListen;
- TDI_REQUEST_QUERY_INFORMATION TdiQueryInformation;
- TDI_REQUEST_RECEIVE TdiReceive;
- TDI_REQUEST_RECEIVE_DATAGRAM TdiReceiveDatagram;
- TDI_REQUEST_SEND TdiSend;
- TDI_REQUEST_SEND_DATAGRAM TdiSendDatagram;
- TDI_REQUEST_SET_EVENT_HANDLER TdiSetEventHandler;
- TDI_REQUEST_SET_INFORMATION TdiSetInformation;
- } TDI_REQUEST_TYPE, *PTDI_REQUEST_TYPE;
- /* Query information types */
- /* Generic query info types that must be supported by all transports */
- #define TDI_QUERY_BROADCAST_ADDRESS 0x00000001
- #define TDI_QUERY_PROVIDER_INFO 0x00000002
- #define TDI_QUERY_ADDRESS_INFO 0x00000003
- #define TDI_QUERY_CONNECTION_INFO 0x00000004
- #define TDI_QUERY_PROVIDER_STATISTICS 0x00000005
- #define TDI_QUERY_DATAGRAM_INFO 0x00000006
- #define TDI_QUERY_DATA_LINK_ADDRESS 0x00000007
- #define TDI_QUERY_NETWORK_ADDRESS 0x00000008
- #define TDI_QUERY_MAX_DATAGRAM_INFO 0x00000009
- /* Netbios specific query information types */
- #define TDI_QUERY_ADAPTER_STATUS 0x00000100
- #define TDI_QUERY_SESSION_STATUS 0x00000200
- #define TDI_QUERY_FIND_NAME 0x00000300
- /* Structures used for TdiQueryInformation and TdiSetInformation */
- typedef struct _TDI_ENDPOINT_INFO {
- ULONG State;
- ULONG Event;
- ULONG TransmittedTsdus;
- ULONG ReceivedTsdus;
- ULONG TransmissionErrors;
- ULONG ReceiveErrors;
- ULONG MinimumLookaheadData;
- ULONG MaximumLookaheadData;
- ULONG PriorityLevel;
- ULONG SecurityLevel;
- ULONG SecurityCompartment;
- } TDI_ENDPOINT_INFO, *PTDI_ENDPOINT_INFO;
- typedef struct _TDI_CONNECTION_INFO {
- ULONG State;
- ULONG Event;
- ULONG TransmittedTsdus;
- ULONG ReceivedTsdus;
- ULONG TransmissionErrors;
- ULONG ReceiveErrors;
- LARGE_INTEGER Throughput;
- LARGE_INTEGER Delay;
- ULONG SendBufferSize;
- ULONG ReceiveBufferSize;
- BOOLEAN Unreliable;
- } TDI_CONNECTION_INFO, *PTDI_CONNECTION_INFO;
- typedef struct _TDI_DATAGRAM_INFO {
- ULONG MaximumDatagramBytes;
- ULONG MaximumDatagramCount;
- } TDI_DATAGRAM_INFO, *PTDI_DATAGRAM_INFO;
- typedef struct _TDI_MAX_DATAGRAM_INFO {
- ULONG MaxDatagramSize;
- } TDI_MAX_DATAGRAM_INFO, *PTDI_MAX_DATAGRAM_INFO;
- typedef struct _TDI_PROVIDER_INFO {
- ULONG Version;
- ULONG MaxSendSize;
- ULONG MaxConnectionUserData;
- ULONG MaxDatagramSize;
- ULONG ServiceFlags;
- ULONG MinimumLookaheadData;
- ULONG MaximumLookaheadData;
- ULONG NumberOfResources;
- LARGE_INTEGER StartTime;
- } TDI_PROVIDER_INFO, *PTDI_PROVIDER_INFO;
- #define TDI_SERVICE_CONNECTION_MODE 0x00000001
- #define TDI_SERVICE_ORDERLY_RELEASE 0x00000002
- #define TDI_SERVICE_CONNECTIONLESS_MODE 0x00000004
- #define TDI_SERVICE_ERROR_FREE_DELIVERY 0x00000008
- #define TDI_SERVICE_SECURITY_LEVEL 0x00000010
- #define TDI_SERVICE_BROADCAST_SUPPORTED 0x00000020
- #define TDI_SERVICE_MULTICAST_SUPPORTED 0x00000040
- #define TDI_SERVICE_DELAYED_ACCEPTANCE 0x00000080
- #define TDI_SERVICE_EXPEDITED_DATA 0x00000100
- #define TDI_SERVICE_INTERNAL_BUFFERING 0x00000200
- #define TDI_SERVICE_ROUTE_DIRECTED 0x00000400
- #define TDI_SERVICE_NO_ZERO_LENGTH 0x00000800
- #define TDI_SERVICE_POINT_TO_POINT 0x00001000
- #define TDI_SERVICE_MESSAGE_MODE 0x00002000
- #define TDI_SERVICE_HALF_DUPLEX 0x00004000
- #define TDI_SERVICE_DGRAM_CONNECTION 0x00008000
- #define TDI_SERVICE_FORCE_ACCESS_CHECK 0x00010000
- #define TDI_SERVICE_SEND_AND_DISCONNECT 0x00020000
- #define TDI_SERVICE_DIRECT_ACCEPT 0x00040000
- #define TDI_SERVICE_ACCEPT_LOCAL_ADDR 0x00080000
- typedef struct _TDI_PROVIDER_RESOURCE_STATS {
- ULONG ResourceId;
- ULONG MaximumResourceUsed;
- ULONG AverageResourceUsed;
- ULONG ResourceExhausted;
- } TDI_PROVIDER_RESOURCE_STATS, *PTDI_PROVIDER_RESOURCE_STATS;
- typedef struct _TDI_PROVIDER_STATISTICS {
- ULONG Version;
- ULONG OpenConnections;
- ULONG ConnectionsAfterNoRetry;
- ULONG ConnectionsAfterRetry;
- ULONG LocalDisconnects;
- ULONG RemoteDisconnects;
- ULONG LinkFailures;
- ULONG AdapterFailures;
- ULONG SessionTimeouts;
- ULONG CancelledConnections;
- ULONG RemoteResourceFailures;
- ULONG LocalResourceFailures;
- ULONG NotFoundFailures;
- ULONG NoListenFailures;
- ULONG DatagramsSent;
- LARGE_INTEGER DatagramBytesSent;
- ULONG DatagramsReceived;
- LARGE_INTEGER DatagramBytesReceived;
- ULONG PacketsSent;
- ULONG PacketsReceived;
- ULONG DataFramesSent;
- LARGE_INTEGER DataFrameBytesSent;
- ULONG DataFramesReceived;
- LARGE_INTEGER DataFrameBytesReceived;
- ULONG DataFramesResent;
- LARGE_INTEGER DataFrameBytesResent;
- ULONG DataFramesRejected;
- LARGE_INTEGER DataFrameBytesRejected;
- ULONG ResponseTimerExpirations;
- ULONG AckTimerExpirations;
- ULONG MaximumSendWindow;
- ULONG AverageSendWindow;
- ULONG PiggybackAckQueued;
- ULONG PiggybackAckTimeouts;
- LARGE_INTEGER WastedPacketSpace;
- ULONG WastedSpacePackets;
- ULONG NumberOfResources;
- TDI_PROVIDER_RESOURCE_STATS ResourceStats[1];
- } TDI_PROVIDER_STATISTICS, *PTDI_PROVIDER_STATISTICS;
- #define TDI_EVENT_CONNECT 0
- #define TDI_EVENT_DISCONNECT 1
- #define TDI_EVENT_ERROR 2
- #define TDI_EVENT_RECEIVE 3
- #define TDI_EVENT_RECEIVE_DATAGRAM 4
- #define TDI_EVENT_RECEIVE_EXPEDITED 5
- #define TDI_EVENT_SEND_POSSIBLE 6
- typedef struct _TDI_REQUEST_ASSOCIATE {
- TDI_REQUEST Request;
- HANDLE AddressHandle;
- } TDI_REQUEST_ASSOCIATE_ADDRESS, *PTDI_REQUEST_ASSOCIATE_ADDRESS;
- #define NDIS_PACKET_POOL_TAG_FOR_NWLNKIPX 'iPDN'
- #define NDIS_PACKET_POOL_TAG_FOR_NWLNKSPX 'sPDN'
- #define NDIS_PACKET_POOL_TAG_FOR_NWLNKNB 'nPDN'
- #define NDIS_PACKET_POOL_TAG_FOR_TCPIP 'tPDN'
- #define NDIS_PACKET_POOL_TAG_FOR_NBF 'bPDN'
- #define NDIS_PACKET_POOL_TAG_FOR_APPLETALK 'aPDN'
- typedef struct _TA_ADDRESS {
- USHORT AddressLength;
- USHORT AddressType;
- UCHAR Address[1];
- } TA_ADDRESS, *PTA_ADDRESS;
- #define TDI_ADDRESS_TYPE_UNSPEC 0
- #define TDI_ADDRESS_TYPE_UNIX 1
- #define TDI_ADDRESS_TYPE_IP 2
- #define TDI_ADDRESS_TYPE_IMPLINK 3
- #define TDI_ADDRESS_TYPE_PUP 4
- #define TDI_ADDRESS_TYPE_CHAOS 5
- #define TDI_ADDRESS_TYPE_NS 6
- #define TDI_ADDRESS_TYPE_IPX 6
- #define TDI_ADDRESS_TYPE_NBS 7
- #define TDI_ADDRESS_TYPE_ECMA 8
- #define TDI_ADDRESS_TYPE_DATAKIT 9
- #define TDI_ADDRESS_TYPE_CCITT 10
- #define TDI_ADDRESS_TYPE_SNA 11
- #define TDI_ADDRESS_TYPE_DECnet 12
- #define TDI_ADDRESS_TYPE_DLI 13
- #define TDI_ADDRESS_TYPE_LAT 14
- #define TDI_ADDRESS_TYPE_HYLINK 15
- #define TDI_ADDRESS_TYPE_APPLETALK 16
- #define TDI_ADDRESS_TYPE_NETBIOS 17
- #define TDI_ADDRESS_TYPE_8022 18
- #define TDI_ADDRESS_TYPE_OSI_TSAP 19
- #define TDI_ADDRESS_TYPE_NETONE 20
- #define TDI_ADDRESS_TYPE_VNS 21
- #define TDI_ADDRESS_TYPE_NETBIOS_EX 22
- #define TDI_ADDRESS_TYPE_IP6 23
- #define TDI_ADDRESS_TYPE_NETBIOS_UNICODE_EX 24
- #define TdiTransportAddress "TransportAddress"
- #define TdiConnectionContext "ConnectionContext"
- #define TDI_TRANSPORT_ADDRESS_LENGTH (sizeof(TdiTransportAddress) - 1)
- #define TDI_CONNECTION_CONTEXT_LENGTH (sizeof(TdiConnectionContext) - 1)
- typedef struct _TRANSPORT_ADDRESS {
- LONG TAAddressCount;
- TA_ADDRESS Address[1];
- } TRANSPORT_ADDRESS, *PTRANSPORT_ADDRESS;
- typedef struct _TDI_ACTION_HEADER {
- ULONG TransportId;
- USHORT ActionCode;
- USHORT Reserved;
- } TDI_ACTION_HEADER, *PTDI_ACTION_HEADER;
- typedef struct _TDI_ADDRESS_INFO {
- ULONG ActivityCount;
- TRANSPORT_ADDRESS Address;
- } TDI_ADDRESS_INFO, *PTDI_ADDRESS_INFO;
- #include "pshpack1.h"
- typedef struct _TDI_ADDRESS_8022 {
- UCHAR MACAddress[6];
- } TDI_ADDRESS_8022, *PTDI_ADDRESS_8022;
- #define TDI_ADDRESS_LENGTH_8022 sizeof(TDI_ADDRESS_8022);
- typedef struct _TDI_ADDRESS_APPLETALK {
- USHORT Network;
- UCHAR Node;
- UCHAR Socket;
- } TDI_ADDRESS_APPLETALK, *PTDI_ADDRESS_APPLETALK;
- #define TDI_ADDRESS_LENGTH_APPLETALK sizeof(TDI_ADDRESS_APPLETALK)
- typedef struct _TDI_ADDRESS_IP {
- USHORT sin_port;
- ULONG in_addr;
- UCHAR sin_zero[8];
- } TDI_ADDRESS_IP, *PTDI_ADDRESS_IP;
- #define TDI_ADDRESS_LENGTH_IP sizeof(TDI_ADDRESS_IP)
- typedef struct _TDI_ADDRESS_IPX {
- ULONG NetworkAddress;
- UCHAR NodeAddress[6];
- USHORT Socket;
- } TDI_ADDRESS_IPX, *PTDI_ADDRESS_IPX;
- #define TDI_ADDRESS_LENGTH_IPX sizeof(TDI_ADDRESS_IPX)
- /* TDI_ADDRESS_NETBIOS.NetbiosNameType constants */
- #define TDI_ADDRESS_NETBIOS_TYPE_UNIQUE 0x0000
- #define TDI_ADDRESS_NETBIOS_TYPE_GROUP 0x0001
- #define TDI_ADDRESS_NETBIOS_TYPE_QUICK_UNIQUE 0x0002
- #define TDI_ADDRESS_NETBIOS_TYPE_QUICK_GROUP 0x0003
- typedef struct _TDI_ADDRESS_NETBIOS {
- USHORT NetbiosNameType;
- UCHAR NetbiosName[16];
- } TDI_ADDRESS_NETBIOS, *PTDI_ADDRESS_NETBIOS;
- #define TDI_ADDRESS_LENGTH_NETBIOS sizeof(TDI_ADDRESS_NETBIOS)
- typedef struct _TDI_ADDRESS_NETBIOS_EX {
- UCHAR EndpointName[16];
- TDI_ADDRESS_NETBIOS NetbiosAddress;
- } TDI_ADDRESS_NETBIOS_EX, *PTDI_ADDRESS_NETBIOS_EX;
- #define TDI_ADDRESS_LENGTH_NETBIOS_EX sizeof(TDI_ADDRESS_NETBIOS_EX)
- /* TDI_ADDRESS_NETONE.NetoneNameType constants */
- #define TDI_ADDRESS_NETONE_TYPE_UNIQUE 0x0000
- #define TDI_ADDRESS_NETONE_TYPE_ROTORED 0x0001
- typedef struct _TDI_ADDRESS_NETONE {
- USHORT NetoneNameType;
- UCHAR NetoneName[20];
- } TDI_ADDRESS_NETONE, *PTDI_ADDRESS_NETONE;
- #define TDI_ADDRESS_LENGTH_NETONE sizeof(TDI_ADDRESS_NETONE)
- typedef struct _TDI_ADDRESS_NS
- {
- ULONG NetworkAddress;
- UCHAR NodeAddress[6];
- USHORT Socket;
- } TDI_ADDRESS_NS, *PTDI_ADDRESS_NS;
- #define TDI_ADDRESS_LENGTH_NS sizeof(TDI_ADDRESS_NS)
- #define ISO_MAX_ADDR_LENGTH 64
- /* TDI_ADDRESS_OSI_TSAP.tp_addr_type constants */
- #define ISO_HIERARCHICAL 0
- #define ISO_NON_HIERARCHICAL 1
- typedef struct _TDI_ADDRESS_OSI_TSAP {
- USHORT tp_addr_type;
- USHORT tp_taddr_len;
- USHORT tp_tsel_len;
- UCHAR tp_addr[ISO_MAX_ADDR_LENGTH];
- } TDI_ADDRESS_OSI_TSAP, *PTDI_ADDRESS_OSI_TSAP;
- #define TDI_ADDRESS_LENGTH_OSI_TSAP sizeof(TDI_ADDRESS_OSI_TSAP)
- typedef struct _TDI_ADDRESS_VNS {
- UCHAR net_address[4];
- UCHAR subnet_addr[2];
- UCHAR port[2];
- UCHAR hops;
- UCHAR filler[5];
- } TDI_ADDRESS_VNS, *PTDI_ADDRESS_VNS;
- #define TDI_ADDRESS_LENGTH_VNS sizeof(TDI_ADDRESS_VNS)
- typedef struct _TDI_ADDRESS_IP6 {
- USHORT sin6_port;
- ULONG sin6_flowinfo;
- USHORT sin6_addr[8];
- ULONG sin6_scope_id;
- } TDI_ADDRESS_IP6, *PTDI_ADDRESS_IP6;
- #define TDI_ADDRESS_LENGTH_IP6 sizeof(TDI_ADDRESS_IP6)
- enum eNameBufferType {
- NBT_READONLY = 0,
- NBT_WRITEONLY,
- NBT_READWRITE,
- NBT_WRITTEN
- };
- typedef struct _TDI_ADDRESS_NETBIOS_UNICODE_EX {
- USHORT NetbiosNameType;
- enum eNameBufferType NameBufferType;
- UNICODE_STRING EndpointName;
- UNICODE_STRING RemoteName;
- WCHAR EndpointBuffer[17];
- WCHAR RemoteNameBuffer[1];
- } TDI_ADDRESS_NETBIOS_UNICODE_EX, *PTDI_ADDRESS_NETBIOS_UNICODE_EX;
- typedef struct _TA_APPLETALK_ADDR {
- LONG TAAddressCount;
- struct _AddrAtalk {
- USHORT AddressLength;
- USHORT AddressType;
- TDI_ADDRESS_APPLETALK Address[1];
- } Address[1];
- } TA_APPLETALK_ADDRESS, *PTA_APPLETALK_ADDRESS;
- typedef struct _TA_ADDRESS_IP {
- LONG TAAddressCount;
- struct _AddrIp {
- USHORT AddressLength;
- USHORT AddressType;
- TDI_ADDRESS_IP Address[1];
- } Address[1];
- } TA_IP_ADDRESS, *PTA_IP_ADDRESS;
- typedef struct _TA_ADDRESS_IPX {
- LONG TAAddressCount;
- struct _AddrIpx {
- USHORT AddressLength;
- USHORT AddressType;
- TDI_ADDRESS_IPX Address[1];
- } Address[1];
- } TA_IPX_ADDRESS, *PTA_IPX_ADDRESS;
- typedef struct _TA_NETBIOS_ADDRESS {
- LONG TAAddressCount;
- struct _Addr{
- USHORT AddressLength;
- USHORT AddressType;
- TDI_ADDRESS_NETBIOS Address[1];
- } Address[1];
- } TA_NETBIOS_ADDRESS, *PTA_NETBIOS_ADDRESS;
- typedef struct _TA_ADDRESS_NS {
- LONG TAAddressCount;
- struct _AddrNs {
- USHORT AddressLength;
- USHORT AddressType;
- TDI_ADDRESS_NS Address[1];
- } Address[1];
- } TA_NS_ADDRESS, *PTA_NS_ADDRESS;
- typedef struct _TA_ADDRESS_VNS {
- LONG TAAddressCount;
- struct _AddrVns {
- USHORT AddressLength;
- USHORT AddressType;
- TDI_ADDRESS_VNS Address[1];
- } Address[1];
- } TA_VNS_ADDRESS, *PTA_VNS_ADDRESS;
- typedef struct _TA_ADDRESS_IP6 {
- LONG TAAddressCount;
- struct _AddrIp6 {
- USHORT AddressLength;
- USHORT AddressType;
- TDI_ADDRESS_IP6 Address[1];
- } Address [1];
- } TA_IP6_ADDRESS, *PTA_IP6_ADDRESS;
- typedef struct _TA_ADDRESS_NETBIOS_UNICODE_EX {
- LONG TAAddressCount;
- struct _AddrNetbiosWCharEx {
- USHORT AddressLength;
- USHORT AddressType;
- TDI_ADDRESS_NETBIOS_UNICODE_EX Address[1];
- } Address [1];
- } TA_NETBIOS_UNICODE_EX_ADDRESS, *PTA_NETBIOS_UNICODE_EX_ADDRESS;
- #include "poppack.h"
- #ifdef __cplusplus
- }
- #endif
- #endif /* __TDI_H */
|