| /* |
| * 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 */ |