Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygentdi.h
Go to the documentation of this file.
00001 /* 00002 * tdi.h 00003 * 00004 * TDI user mode definitions 00005 * 00006 * This file is part of the w32api package. 00007 * 00008 * Contributors: 00009 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #ifndef __TDI_H 00024 #define __TDI_H 00025 00026 #include "ntddtdi.h" 00027 #include "tdistat.h" 00028 #include "netpnp.h" 00029 00030 #ifdef __cplusplus 00031 extern "C" { 00032 #endif 00033 00034 /* Basic types */ 00035 00036 typedef LONG TDI_STATUS; 00037 typedef PVOID CONNECTION_CONTEXT; 00038 00039 typedef struct _TDI_CONNECTION_INFORMATION { 00040 LONG UserDataLength; 00041 PVOID UserData; 00042 LONG OptionsLength; 00043 PVOID Options; 00044 LONG RemoteAddressLength; 00045 PVOID RemoteAddress; 00046 } TDI_CONNECTION_INFORMATION, *PTDI_CONNECTION_INFORMATION; 00047 00048 typedef struct _TDI_REQUEST { 00049 union { 00050 HANDLE AddressHandle; 00051 CONNECTION_CONTEXT ConnectionContext; 00052 HANDLE ControlChannel; 00053 } Handle; 00054 PVOID RequestNotifyObject; 00055 PVOID RequestContext; 00056 TDI_STATUS TdiStatus; 00057 } TDI_REQUEST, *PTDI_REQUEST; 00058 00059 typedef struct _TDI_REQUEST_STATUS { 00060 TDI_STATUS Status; 00061 PVOID RequestContext; 00062 ULONG BytesTransferred; 00063 } TDI_REQUEST_STATUS, *PTDI_REQUEST_STATUS; 00064 00065 typedef struct _TDI_CONNECT_REQUEST { 00066 TDI_REQUEST Request; 00067 PTDI_CONNECTION_INFORMATION RequestConnectionInformation; 00068 PTDI_CONNECTION_INFORMATION ReturnConnectionInformation; 00069 LARGE_INTEGER Timeout; 00070 } TDI_REQUEST_CONNECT, *PTDI_REQUEST_CONNECT; 00071 00072 typedef struct _TDI_REQUEST_ACCEPT { 00073 TDI_REQUEST Request; 00074 PTDI_CONNECTION_INFORMATION RequestConnectionInformation; 00075 PTDI_CONNECTION_INFORMATION ReturnConnectionInformation; 00076 } TDI_REQUEST_ACCEPT, *PTDI_REQUEST_ACCEPT; 00077 00078 typedef struct _TDI_REQUEST_LISTEN { 00079 TDI_REQUEST Request; 00080 PTDI_CONNECTION_INFORMATION RequestConnectionInformation; 00081 PTDI_CONNECTION_INFORMATION ReturnConnectionInformation; 00082 USHORT ListenFlags; 00083 } TDI_REQUEST_LISTEN, *PTDI_REQUEST_LISTEN; 00084 00085 typedef struct _TDI_DISCONNECT_REQUEST { 00086 TDI_REQUEST Request; 00087 LARGE_INTEGER Timeout; 00088 } TDI_REQUEST_DISCONNECT, *PTDI_REQUEST_DISCONNECT; 00089 00090 typedef struct _TDI_REQUEST_SEND { 00091 TDI_REQUEST Request; 00092 USHORT SendFlags; 00093 } TDI_REQUEST_SEND, *PTDI_REQUEST_SEND; 00094 00095 typedef struct _TDI_REQUEST_RECEIVE { 00096 TDI_REQUEST Request; 00097 USHORT ReceiveFlags; 00098 } TDI_REQUEST_RECEIVE, *PTDI_REQUEST_RECEIVE; 00099 00100 typedef struct _TDI_REQUEST_SEND_DATAGRAM { 00101 TDI_REQUEST Request; 00102 PTDI_CONNECTION_INFORMATION SendDatagramInformation; 00103 } TDI_REQUEST_SEND_DATAGRAM, *PTDI_REQUEST_SEND_DATAGRAM; 00104 00105 typedef struct _TDI_REQUEST_RECEIVE_DATAGRAM { 00106 TDI_REQUEST Request; 00107 PTDI_CONNECTION_INFORMATION ReceiveDatagramInformation; 00108 PTDI_CONNECTION_INFORMATION ReturnInformation; 00109 USHORT ReceiveFlags; 00110 } TDI_REQUEST_RECEIVE_DATAGRAM, *PTDI_REQUEST_RECEIVE_DATAGRAM; 00111 00112 typedef struct _TDI_REQUEST_SET_EVENT { 00113 TDI_REQUEST Request; 00114 LONG EventType; 00115 PVOID EventHandler; 00116 PVOID EventContext; 00117 } TDI_REQUEST_SET_EVENT_HANDLER, *PTDI_REQUEST_SET_EVENT_HANDLER; 00118 00119 #define TDI_RECEIVE_BROADCAST 0x00000004 00120 #define TDI_RECEIVE_MULTICAST 0x00000008 00121 #define TDI_RECEIVE_PARTIAL 0x00000010 00122 #define TDI_RECEIVE_NORMAL 0x00000020 00123 #define TDI_RECEIVE_EXPEDITED 0x00000040 00124 #define TDI_RECEIVE_PEEK 0x00000080 00125 #define TDI_RECEIVE_NO_RESPONSE_EXP 0x00000100 00126 #define TDI_RECEIVE_COPY_LOOKAHEAD 0x00000200 00127 #define TDI_RECEIVE_ENTIRE_MESSAGE 0x00000400 00128 #define TDI_RECEIVE_AT_DISPATCH_LEVEL 0x00000800 00129 #define TDI_RECEIVE_CONTROL_INFO 0x00001000 00130 00131 /* Listen flags */ 00132 #define TDI_QUERY_ACCEPT 0x00000001 00133 00134 /* Options used for both SendOptions and ReceiveIndicators */ 00135 #define TDI_SEND_EXPEDITED 0x0020 00136 #define TDI_SEND_PARTIAL 0x0040 00137 #define TDI_SEND_NO_RESPONSE_EXPECTED 0x0080 00138 #define TDI_SEND_NON_BLOCKING 0x0100 00139 #define TDI_SEND_AND_DISCONNECT 0x0200 00140 00141 /* Disconnect Flags */ 00142 #define TDI_DISCONNECT_WAIT 0x0001 00143 #define TDI_DISCONNECT_ABORT 0x0002 00144 #define TDI_DISCONNECT_RELEASE 0x0004 00145 00146 /* TdiRequest structure for TdiQueryInformation request */ 00147 typedef struct _TDI_REQUEST_QUERY_INFORMATION { 00148 TDI_REQUEST Request; 00149 ULONG QueryType; 00150 PTDI_CONNECTION_INFORMATION RequestConnectionInformation; 00151 } TDI_REQUEST_QUERY_INFORMATION, *PTDI_REQUEST_QUERY_INFORMATION; 00152 00153 /* TdiRequest structure for TdiSetInformation request */ 00154 typedef struct _TDI_REQUEST_SET_INFORMATION { 00155 TDI_REQUEST Request; 00156 ULONG SetType; 00157 PTDI_CONNECTION_INFORMATION RequestConnectionInformation; 00158 } TDI_REQUEST_SET_INFORMATION, *PTDI_REQUEST_SET_INFORMATION; 00159 00160 typedef TDI_REQUEST_SET_INFORMATION TDI_REQ_SET_INFORMATION, *PTDI_REQ_SET_INFORMATION; 00161 00162 typedef union _TDI_REQUEST_TYPE { 00163 TDI_REQUEST_ACCEPT TdiAccept; 00164 TDI_REQUEST_CONNECT TdiConnect; 00165 TDI_REQUEST_DISCONNECT TdiDisconnect; 00166 TDI_REQUEST_LISTEN TdiListen; 00167 TDI_REQUEST_QUERY_INFORMATION TdiQueryInformation; 00168 TDI_REQUEST_RECEIVE TdiReceive; 00169 TDI_REQUEST_RECEIVE_DATAGRAM TdiReceiveDatagram; 00170 TDI_REQUEST_SEND TdiSend; 00171 TDI_REQUEST_SEND_DATAGRAM TdiSendDatagram; 00172 TDI_REQUEST_SET_EVENT_HANDLER TdiSetEventHandler; 00173 TDI_REQUEST_SET_INFORMATION TdiSetInformation; 00174 } TDI_REQUEST_TYPE, *PTDI_REQUEST_TYPE; 00175 00176 /* Query information types */ 00177 00178 /* Generic query info types that must be supported by all transports */ 00179 #define TDI_QUERY_BROADCAST_ADDRESS 0x00000001 00180 #define TDI_QUERY_PROVIDER_INFO 0x00000002 00181 #define TDI_QUERY_ADDRESS_INFO 0x00000003 00182 #define TDI_QUERY_CONNECTION_INFO 0x00000004 00183 #define TDI_QUERY_PROVIDER_STATISTICS 0x00000005 00184 #define TDI_QUERY_DATAGRAM_INFO 0x00000006 00185 #define TDI_QUERY_DATA_LINK_ADDRESS 0x00000007 00186 #define TDI_QUERY_NETWORK_ADDRESS 0x00000008 00187 #define TDI_QUERY_MAX_DATAGRAM_INFO 0x00000009 00188 00189 /* Netbios specific query information types */ 00190 #define TDI_QUERY_ADAPTER_STATUS 0x00000100 00191 #define TDI_QUERY_SESSION_STATUS 0x00000200 00192 #define TDI_QUERY_FIND_NAME 0x00000300 00193 00194 /* Structures used for TdiQueryInformation and TdiSetInformation */ 00195 00196 typedef struct _TDI_ENDPOINT_INFO { 00197 ULONG State; 00198 ULONG Event; 00199 ULONG TransmittedTsdus; 00200 ULONG ReceivedTsdus; 00201 ULONG TransmissionErrors; 00202 ULONG ReceiveErrors; 00203 ULONG MinimumLookaheadData; 00204 ULONG MaximumLookaheadData; 00205 ULONG PriorityLevel; 00206 ULONG SecurityLevel; 00207 ULONG SecurityCompartment; 00208 } TDI_ENDPOINT_INFO, *PTDI_ENDPOINT_INFO; 00209 00210 typedef struct _TDI_CONNECTION_INFO { 00211 ULONG State; 00212 ULONG Event; 00213 ULONG TransmittedTsdus; 00214 ULONG ReceivedTsdus; 00215 ULONG TransmissionErrors; 00216 ULONG ReceiveErrors; 00217 LARGE_INTEGER Throughput; 00218 LARGE_INTEGER Delay; 00219 ULONG SendBufferSize; 00220 ULONG ReceiveBufferSize; 00221 BOOLEAN Unreliable; 00222 } TDI_CONNECTION_INFO, *PTDI_CONNECTION_INFO; 00223 00224 typedef struct _TDI_DATAGRAM_INFO { 00225 ULONG MaximumDatagramBytes; 00226 ULONG MaximumDatagramCount; 00227 } TDI_DATAGRAM_INFO, *PTDI_DATAGRAM_INFO; 00228 00229 typedef struct _TDI_MAX_DATAGRAM_INFO { 00230 ULONG MaxDatagramSize; 00231 } TDI_MAX_DATAGRAM_INFO, *PTDI_MAX_DATAGRAM_INFO; 00232 00233 typedef struct _TDI_PROVIDER_INFO { 00234 ULONG Version; 00235 ULONG MaxSendSize; 00236 ULONG MaxConnectionUserData; 00237 ULONG MaxDatagramSize; 00238 ULONG ServiceFlags; 00239 ULONG MinimumLookaheadData; 00240 ULONG MaximumLookaheadData; 00241 ULONG NumberOfResources; 00242 LARGE_INTEGER StartTime; 00243 } TDI_PROVIDER_INFO, *PTDI_PROVIDER_INFO; 00244 00245 #define TDI_SERVICE_CONNECTION_MODE 0x00000001 00246 #define TDI_SERVICE_ORDERLY_RELEASE 0x00000002 00247 #define TDI_SERVICE_CONNECTIONLESS_MODE 0x00000004 00248 #define TDI_SERVICE_ERROR_FREE_DELIVERY 0x00000008 00249 #define TDI_SERVICE_SECURITY_LEVEL 0x00000010 00250 #define TDI_SERVICE_BROADCAST_SUPPORTED 0x00000020 00251 #define TDI_SERVICE_MULTICAST_SUPPORTED 0x00000040 00252 #define TDI_SERVICE_DELAYED_ACCEPTANCE 0x00000080 00253 #define TDI_SERVICE_EXPEDITED_DATA 0x00000100 00254 #define TDI_SERVICE_INTERNAL_BUFFERING 0x00000200 00255 #define TDI_SERVICE_ROUTE_DIRECTED 0x00000400 00256 #define TDI_SERVICE_NO_ZERO_LENGTH 0x00000800 00257 #define TDI_SERVICE_POINT_TO_POINT 0x00001000 00258 #define TDI_SERVICE_MESSAGE_MODE 0x00002000 00259 #define TDI_SERVICE_HALF_DUPLEX 0x00004000 00260 #define TDI_SERVICE_DGRAM_CONNECTION 0x00008000 00261 #define TDI_SERVICE_FORCE_ACCESS_CHECK 0x00010000 00262 #define TDI_SERVICE_SEND_AND_DISCONNECT 0x00020000 00263 #define TDI_SERVICE_DIRECT_ACCEPT 0x00040000 00264 #define TDI_SERVICE_ACCEPT_LOCAL_ADDR 0x00080000 00265 00266 typedef struct _TDI_PROVIDER_RESOURCE_STATS { 00267 ULONG ResourceId; 00268 ULONG MaximumResourceUsed; 00269 ULONG AverageResourceUsed; 00270 ULONG ResourceExhausted; 00271 } TDI_PROVIDER_RESOURCE_STATS, *PTDI_PROVIDER_RESOURCE_STATS; 00272 00273 typedef struct _TDI_PROVIDER_STATISTICS { 00274 ULONG Version; 00275 ULONG OpenConnections; 00276 ULONG ConnectionsAfterNoRetry; 00277 ULONG ConnectionsAfterRetry; 00278 ULONG LocalDisconnects; 00279 ULONG RemoteDisconnects; 00280 ULONG LinkFailures; 00281 ULONG AdapterFailures; 00282 ULONG SessionTimeouts; 00283 ULONG CancelledConnections; 00284 ULONG RemoteResourceFailures; 00285 ULONG LocalResourceFailures; 00286 ULONG NotFoundFailures; 00287 ULONG NoListenFailures; 00288 ULONG DatagramsSent; 00289 LARGE_INTEGER DatagramBytesSent; 00290 ULONG DatagramsReceived; 00291 LARGE_INTEGER DatagramBytesReceived; 00292 ULONG PacketsSent; 00293 ULONG PacketsReceived; 00294 ULONG DataFramesSent; 00295 LARGE_INTEGER DataFrameBytesSent; 00296 ULONG DataFramesReceived; 00297 LARGE_INTEGER DataFrameBytesReceived; 00298 ULONG DataFramesResent; 00299 LARGE_INTEGER DataFrameBytesResent; 00300 ULONG DataFramesRejected; 00301 LARGE_INTEGER DataFrameBytesRejected; 00302 ULONG ResponseTimerExpirations; 00303 ULONG AckTimerExpirations; 00304 ULONG MaximumSendWindow; 00305 ULONG AverageSendWindow; 00306 ULONG PiggybackAckQueued; 00307 ULONG PiggybackAckTimeouts; 00308 LARGE_INTEGER WastedPacketSpace; 00309 ULONG WastedSpacePackets; 00310 ULONG NumberOfResources; 00311 TDI_PROVIDER_RESOURCE_STATS ResourceStats[1]; 00312 } TDI_PROVIDER_STATISTICS, *PTDI_PROVIDER_STATISTICS; 00313 00314 #define TDI_EVENT_CONNECT 0 00315 #define TDI_EVENT_DISCONNECT 1 00316 #define TDI_EVENT_ERROR 2 00317 #define TDI_EVENT_RECEIVE 3 00318 #define TDI_EVENT_RECEIVE_DATAGRAM 4 00319 #define TDI_EVENT_RECEIVE_EXPEDITED 5 00320 #define TDI_EVENT_SEND_POSSIBLE 6 00321 00322 typedef struct _TDI_REQUEST_ASSOCIATE { 00323 TDI_REQUEST Request; 00324 HANDLE AddressHandle; 00325 } TDI_REQUEST_ASSOCIATE_ADDRESS, *PTDI_REQUEST_ASSOCIATE_ADDRESS; 00326 00327 #define NDIS_PACKET_POOL_TAG_FOR_NWLNKIPX 'iPDN' 00328 #define NDIS_PACKET_POOL_TAG_FOR_NWLNKSPX 'sPDN' 00329 #define NDIS_PACKET_POOL_TAG_FOR_NWLNKNB 'nPDN' 00330 #define NDIS_PACKET_POOL_TAG_FOR_TCPIP 'tPDN' 00331 #define NDIS_PACKET_POOL_TAG_FOR_NBF 'bPDN' 00332 #define NDIS_PACKET_POOL_TAG_FOR_APPLETALK 'aPDN' 00333 00334 typedef struct _TA_ADDRESS { 00335 USHORT AddressLength; 00336 USHORT AddressType; 00337 UCHAR Address[1]; 00338 } TA_ADDRESS, *PTA_ADDRESS; 00339 00340 #define TDI_ADDRESS_TYPE_UNSPEC 0 00341 #define TDI_ADDRESS_TYPE_UNIX 1 00342 #define TDI_ADDRESS_TYPE_IP 2 00343 #define TDI_ADDRESS_TYPE_IMPLINK 3 00344 #define TDI_ADDRESS_TYPE_PUP 4 00345 #define TDI_ADDRESS_TYPE_CHAOS 5 00346 #define TDI_ADDRESS_TYPE_NS 6 00347 #define TDI_ADDRESS_TYPE_IPX 6 00348 #define TDI_ADDRESS_TYPE_NBS 7 00349 #define TDI_ADDRESS_TYPE_ECMA 8 00350 #define TDI_ADDRESS_TYPE_DATAKIT 9 00351 #define TDI_ADDRESS_TYPE_CCITT 10 00352 #define TDI_ADDRESS_TYPE_SNA 11 00353 #define TDI_ADDRESS_TYPE_DECnet 12 00354 #define TDI_ADDRESS_TYPE_DLI 13 00355 #define TDI_ADDRESS_TYPE_LAT 14 00356 #define TDI_ADDRESS_TYPE_HYLINK 15 00357 #define TDI_ADDRESS_TYPE_APPLETALK 16 00358 #define TDI_ADDRESS_TYPE_NETBIOS 17 00359 #define TDI_ADDRESS_TYPE_8022 18 00360 #define TDI_ADDRESS_TYPE_OSI_TSAP 19 00361 #define TDI_ADDRESS_TYPE_NETONE 20 00362 #define TDI_ADDRESS_TYPE_VNS 21 00363 #define TDI_ADDRESS_TYPE_NETBIOS_EX 22 00364 #define TDI_ADDRESS_TYPE_IP6 23 00365 #define TDI_ADDRESS_TYPE_NETBIOS_UNICODE_EX 24 00366 00367 #define TdiTransportAddress "TransportAddress" 00368 #define TdiConnectionContext "ConnectionContext" 00369 #define TDI_TRANSPORT_ADDRESS_LENGTH (sizeof(TdiTransportAddress) - 1) 00370 #define TDI_CONNECTION_CONTEXT_LENGTH (sizeof(TdiConnectionContext) - 1) 00371 00372 typedef struct _TRANSPORT_ADDRESS { 00373 LONG TAAddressCount; 00374 TA_ADDRESS Address[1]; 00375 } TRANSPORT_ADDRESS, *PTRANSPORT_ADDRESS; 00376 00377 typedef struct _TDI_ACTION_HEADER { 00378 ULONG TransportId; 00379 USHORT ActionCode; 00380 USHORT Reserved; 00381 } TDI_ACTION_HEADER, *PTDI_ACTION_HEADER; 00382 00383 typedef struct _TDI_ADDRESS_INFO { 00384 ULONG ActivityCount; 00385 TRANSPORT_ADDRESS Address; 00386 } TDI_ADDRESS_INFO, *PTDI_ADDRESS_INFO; 00387 00388 #include "pshpack1.h" 00389 00390 typedef struct _TDI_ADDRESS_8022 { 00391 UCHAR MACAddress[6]; 00392 } TDI_ADDRESS_8022, *PTDI_ADDRESS_8022; 00393 00394 #define TDI_ADDRESS_LENGTH_8022 sizeof(TDI_ADDRESS_8022); 00395 00396 typedef struct _TDI_ADDRESS_APPLETALK { 00397 USHORT Network; 00398 UCHAR Node; 00399 UCHAR Socket; 00400 } TDI_ADDRESS_APPLETALK, *PTDI_ADDRESS_APPLETALK; 00401 00402 #define TDI_ADDRESS_LENGTH_APPLETALK sizeof(TDI_ADDRESS_APPLETALK) 00403 00404 typedef struct _TDI_ADDRESS_IP { 00405 USHORT sin_port; 00406 ULONG in_addr; 00407 UCHAR sin_zero[8]; 00408 } TDI_ADDRESS_IP, *PTDI_ADDRESS_IP; 00409 00410 #define TDI_ADDRESS_LENGTH_IP sizeof(TDI_ADDRESS_IP) 00411 00412 typedef struct _TDI_ADDRESS_IPX { 00413 ULONG NetworkAddress; 00414 UCHAR NodeAddress[6]; 00415 USHORT Socket; 00416 } TDI_ADDRESS_IPX, *PTDI_ADDRESS_IPX; 00417 00418 #define TDI_ADDRESS_LENGTH_IPX sizeof(TDI_ADDRESS_IPX) 00419 00420 /* TDI_ADDRESS_NETBIOS.NetbiosNameType constants */ 00421 #define TDI_ADDRESS_NETBIOS_TYPE_UNIQUE 0x0000 00422 #define TDI_ADDRESS_NETBIOS_TYPE_GROUP 0x0001 00423 #define TDI_ADDRESS_NETBIOS_TYPE_QUICK_UNIQUE 0x0002 00424 #define TDI_ADDRESS_NETBIOS_TYPE_QUICK_GROUP 0x0003 00425 00426 typedef struct _TDI_ADDRESS_NETBIOS { 00427 USHORT NetbiosNameType; 00428 UCHAR NetbiosName[16]; 00429 } TDI_ADDRESS_NETBIOS, *PTDI_ADDRESS_NETBIOS; 00430 00431 #define TDI_ADDRESS_LENGTH_NETBIOS sizeof(TDI_ADDRESS_NETBIOS) 00432 00433 typedef struct _TDI_ADDRESS_NETBIOS_EX { 00434 UCHAR EndpointName[16]; 00435 TDI_ADDRESS_NETBIOS NetbiosAddress; 00436 } TDI_ADDRESS_NETBIOS_EX, *PTDI_ADDRESS_NETBIOS_EX; 00437 00438 #define TDI_ADDRESS_LENGTH_NETBIOS_EX sizeof(TDI_ADDRESS_NETBIOS_EX) 00439 00440 /* TDI_ADDRESS_NETONE.NetoneNameType constants */ 00441 #define TDI_ADDRESS_NETONE_TYPE_UNIQUE 0x0000 00442 #define TDI_ADDRESS_NETONE_TYPE_ROTORED 0x0001 00443 00444 typedef struct _TDI_ADDRESS_NETONE { 00445 USHORT NetoneNameType; 00446 UCHAR NetoneName[20]; 00447 } TDI_ADDRESS_NETONE, *PTDI_ADDRESS_NETONE; 00448 00449 #define TDI_ADDRESS_LENGTH_NETONE sizeof(TDI_ADDRESS_NETONE) 00450 00451 typedef struct _TDI_ADDRESS_NS 00452 { 00453 ULONG NetworkAddress; 00454 UCHAR NodeAddress[6]; 00455 USHORT Socket; 00456 } TDI_ADDRESS_NS, *PTDI_ADDRESS_NS; 00457 00458 #define TDI_ADDRESS_LENGTH_NS sizeof(TDI_ADDRESS_NS) 00459 00460 #define ISO_MAX_ADDR_LENGTH 64 00461 00462 /* TDI_ADDRESS_OSI_TSAP.tp_addr_type constants */ 00463 #define ISO_HIERARCHICAL 0 00464 #define ISO_NON_HIERARCHICAL 1 00465 00466 typedef struct _TDI_ADDRESS_OSI_TSAP { 00467 USHORT tp_addr_type; 00468 USHORT tp_taddr_len; 00469 USHORT tp_tsel_len; 00470 UCHAR tp_addr[ISO_MAX_ADDR_LENGTH]; 00471 } TDI_ADDRESS_OSI_TSAP, *PTDI_ADDRESS_OSI_TSAP; 00472 00473 #define TDI_ADDRESS_LENGTH_OSI_TSAP sizeof(TDI_ADDRESS_OSI_TSAP) 00474 00475 typedef struct _TDI_ADDRESS_VNS { 00476 UCHAR net_address[4]; 00477 UCHAR subnet_addr[2]; 00478 UCHAR port[2]; 00479 UCHAR hops; 00480 UCHAR filler[5]; 00481 } TDI_ADDRESS_VNS, *PTDI_ADDRESS_VNS; 00482 00483 #define TDI_ADDRESS_LENGTH_VNS sizeof(TDI_ADDRESS_VNS) 00484 00485 typedef struct _TDI_ADDRESS_IP6 { 00486 USHORT sin6_port; 00487 ULONG sin6_flowinfo; 00488 USHORT sin6_addr[8]; 00489 ULONG sin6_scope_id; 00490 } TDI_ADDRESS_IP6, *PTDI_ADDRESS_IP6; 00491 00492 #define TDI_ADDRESS_LENGTH_IP6 sizeof(TDI_ADDRESS_IP6) 00493 00494 enum eNameBufferType { 00495 NBT_READONLY = 0, 00496 NBT_WRITEONLY, 00497 NBT_READWRITE, 00498 NBT_WRITTEN 00499 }; 00500 00501 typedef struct _TDI_ADDRESS_NETBIOS_UNICODE_EX { 00502 USHORT NetbiosNameType; 00503 enum eNameBufferType NameBufferType; 00504 UNICODE_STRING EndpointName; 00505 UNICODE_STRING RemoteName; 00506 WCHAR EndpointBuffer[17]; 00507 WCHAR RemoteNameBuffer[1]; 00508 } TDI_ADDRESS_NETBIOS_UNICODE_EX, *PTDI_ADDRESS_NETBIOS_UNICODE_EX; 00509 00510 typedef struct _TA_APPLETALK_ADDR { 00511 LONG TAAddressCount; 00512 struct _AddrAtalk { 00513 USHORT AddressLength; 00514 USHORT AddressType; 00515 TDI_ADDRESS_APPLETALK Address[1]; 00516 } Address[1]; 00517 } TA_APPLETALK_ADDRESS, *PTA_APPLETALK_ADDRESS; 00518 00519 typedef struct _TA_ADDRESS_IP { 00520 LONG TAAddressCount; 00521 struct _AddrIp { 00522 USHORT AddressLength; 00523 USHORT AddressType; 00524 TDI_ADDRESS_IP Address[1]; 00525 } Address[1]; 00526 } TA_IP_ADDRESS, *PTA_IP_ADDRESS; 00527 00528 typedef struct _TA_ADDRESS_IPX { 00529 LONG TAAddressCount; 00530 struct _AddrIpx { 00531 USHORT AddressLength; 00532 USHORT AddressType; 00533 TDI_ADDRESS_IPX Address[1]; 00534 } Address[1]; 00535 } TA_IPX_ADDRESS, *PTA_IPX_ADDRESS; 00536 00537 typedef struct _TA_NETBIOS_ADDRESS { 00538 LONG TAAddressCount; 00539 struct _Addr{ 00540 USHORT AddressLength; 00541 USHORT AddressType; 00542 TDI_ADDRESS_NETBIOS Address[1]; 00543 } Address[1]; 00544 } TA_NETBIOS_ADDRESS, *PTA_NETBIOS_ADDRESS; 00545 00546 typedef struct _TA_ADDRESS_NS { 00547 LONG TAAddressCount; 00548 struct _AddrNs { 00549 USHORT AddressLength; 00550 USHORT AddressType; 00551 TDI_ADDRESS_NS Address[1]; 00552 } Address[1]; 00553 } TA_NS_ADDRESS, *PTA_NS_ADDRESS; 00554 00555 typedef struct _TA_ADDRESS_VNS { 00556 LONG TAAddressCount; 00557 struct _AddrVns { 00558 USHORT AddressLength; 00559 USHORT AddressType; 00560 TDI_ADDRESS_VNS Address[1]; 00561 } Address[1]; 00562 } TA_VNS_ADDRESS, *PTA_VNS_ADDRESS; 00563 00564 typedef struct _TA_ADDRESS_IP6 { 00565 LONG TAAddressCount; 00566 struct _AddrIp6 { 00567 USHORT AddressLength; 00568 USHORT AddressType; 00569 TDI_ADDRESS_IP6 Address[1]; 00570 } Address [1]; 00571 } TA_IP6_ADDRESS, *PTA_IP6_ADDRESS; 00572 00573 typedef struct _TA_ADDRESS_NETBIOS_UNICODE_EX { 00574 LONG TAAddressCount; 00575 struct _AddrNetbiosWCharEx { 00576 USHORT AddressLength; 00577 USHORT AddressType; 00578 TDI_ADDRESS_NETBIOS_UNICODE_EX Address[1]; 00579 } Address [1]; 00580 } TA_NETBIOS_UNICODE_EX_ADDRESS, *PTA_NETBIOS_UNICODE_EX_ADDRESS; 00581 00582 #include "poppack.h" 00583 00584 #ifdef __cplusplus 00585 } 00586 #endif 00587 00588 #endif /* __TDI_H */ Generated on Sat May 26 2012 04:31:15 for ReactOS by
1.7.6.1
|