Mercurial > games > semicongine
comparison fuhtark_test/include/ddk/tdi.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 /* | |
| 2 * tdi.h | |
| 3 * | |
| 4 * TDI user mode definitions | |
| 5 * | |
| 6 * This file is part of the w32api package. | |
| 7 * | |
| 8 * Contributors: | |
| 9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> | |
| 10 * | |
| 11 * THIS SOFTWARE IS NOT COPYRIGHTED | |
| 12 * | |
| 13 * This source code is offered for use in the public domain. You may | |
| 14 * use, modify or distribute it freely. | |
| 15 * | |
| 16 * This code is distributed in the hope that it will be useful but | |
| 17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | |
| 18 * DISCLAIMED. This includes but is not limited to warranties of | |
| 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
| 20 * | |
| 21 */ | |
| 22 | |
| 23 #ifndef __TDI_H | |
| 24 #define __TDI_H | |
| 25 | |
| 26 #include "ntddtdi.h" | |
| 27 #include "tdistat.h" | |
| 28 #include "netpnp.h" | |
| 29 | |
| 30 #ifdef __cplusplus | |
| 31 extern "C" { | |
| 32 #endif | |
| 33 | |
| 34 /* Basic types */ | |
| 35 | |
| 36 typedef LONG TDI_STATUS; | |
| 37 typedef PVOID CONNECTION_CONTEXT; | |
| 38 | |
| 39 typedef struct _TDI_CONNECTION_INFORMATION { | |
| 40 LONG UserDataLength; | |
| 41 PVOID UserData; | |
| 42 LONG OptionsLength; | |
| 43 PVOID Options; | |
| 44 LONG RemoteAddressLength; | |
| 45 PVOID RemoteAddress; | |
| 46 } TDI_CONNECTION_INFORMATION, *PTDI_CONNECTION_INFORMATION; | |
| 47 | |
| 48 typedef struct _TDI_REQUEST { | |
| 49 union { | |
| 50 HANDLE AddressHandle; | |
| 51 CONNECTION_CONTEXT ConnectionContext; | |
| 52 HANDLE ControlChannel; | |
| 53 } Handle; | |
| 54 PVOID RequestNotifyObject; | |
| 55 PVOID RequestContext; | |
| 56 TDI_STATUS TdiStatus; | |
| 57 } TDI_REQUEST, *PTDI_REQUEST; | |
| 58 | |
| 59 typedef struct _TDI_REQUEST_STATUS { | |
| 60 TDI_STATUS Status; | |
| 61 PVOID RequestContext; | |
| 62 ULONG BytesTransferred; | |
| 63 } TDI_REQUEST_STATUS, *PTDI_REQUEST_STATUS; | |
| 64 | |
| 65 typedef struct _TDI_CONNECT_REQUEST { | |
| 66 TDI_REQUEST Request; | |
| 67 PTDI_CONNECTION_INFORMATION RequestConnectionInformation; | |
| 68 PTDI_CONNECTION_INFORMATION ReturnConnectionInformation; | |
| 69 LARGE_INTEGER Timeout; | |
| 70 } TDI_REQUEST_CONNECT, *PTDI_REQUEST_CONNECT; | |
| 71 | |
| 72 typedef struct _TDI_REQUEST_ACCEPT { | |
| 73 TDI_REQUEST Request; | |
| 74 PTDI_CONNECTION_INFORMATION RequestConnectionInformation; | |
| 75 PTDI_CONNECTION_INFORMATION ReturnConnectionInformation; | |
| 76 } TDI_REQUEST_ACCEPT, *PTDI_REQUEST_ACCEPT; | |
| 77 | |
| 78 typedef struct _TDI_REQUEST_LISTEN { | |
| 79 TDI_REQUEST Request; | |
| 80 PTDI_CONNECTION_INFORMATION RequestConnectionInformation; | |
| 81 PTDI_CONNECTION_INFORMATION ReturnConnectionInformation; | |
| 82 USHORT ListenFlags; | |
| 83 } TDI_REQUEST_LISTEN, *PTDI_REQUEST_LISTEN; | |
| 84 | |
| 85 typedef struct _TDI_DISCONNECT_REQUEST { | |
| 86 TDI_REQUEST Request; | |
| 87 LARGE_INTEGER Timeout; | |
| 88 } TDI_REQUEST_DISCONNECT, *PTDI_REQUEST_DISCONNECT; | |
| 89 | |
| 90 typedef struct _TDI_REQUEST_SEND { | |
| 91 TDI_REQUEST Request; | |
| 92 USHORT SendFlags; | |
| 93 } TDI_REQUEST_SEND, *PTDI_REQUEST_SEND; | |
| 94 | |
| 95 typedef struct _TDI_REQUEST_RECEIVE { | |
| 96 TDI_REQUEST Request; | |
| 97 USHORT ReceiveFlags; | |
| 98 } TDI_REQUEST_RECEIVE, *PTDI_REQUEST_RECEIVE; | |
| 99 | |
| 100 typedef struct _TDI_REQUEST_SEND_DATAGRAM { | |
| 101 TDI_REQUEST Request; | |
| 102 PTDI_CONNECTION_INFORMATION SendDatagramInformation; | |
| 103 } TDI_REQUEST_SEND_DATAGRAM, *PTDI_REQUEST_SEND_DATAGRAM; | |
| 104 | |
| 105 typedef struct _TDI_REQUEST_RECEIVE_DATAGRAM { | |
| 106 TDI_REQUEST Request; | |
| 107 PTDI_CONNECTION_INFORMATION ReceiveDatagramInformation; | |
| 108 PTDI_CONNECTION_INFORMATION ReturnInformation; | |
| 109 USHORT ReceiveFlags; | |
| 110 } TDI_REQUEST_RECEIVE_DATAGRAM, *PTDI_REQUEST_RECEIVE_DATAGRAM; | |
| 111 | |
| 112 typedef struct _TDI_REQUEST_SET_EVENT { | |
| 113 TDI_REQUEST Request; | |
| 114 LONG EventType; | |
| 115 PVOID EventHandler; | |
| 116 PVOID EventContext; | |
| 117 } TDI_REQUEST_SET_EVENT_HANDLER, *PTDI_REQUEST_SET_EVENT_HANDLER; | |
| 118 | |
| 119 #define TDI_RECEIVE_BROADCAST 0x00000004 | |
| 120 #define TDI_RECEIVE_MULTICAST 0x00000008 | |
| 121 #define TDI_RECEIVE_PARTIAL 0x00000010 | |
| 122 #define TDI_RECEIVE_NORMAL 0x00000020 | |
| 123 #define TDI_RECEIVE_EXPEDITED 0x00000040 | |
| 124 #define TDI_RECEIVE_PEEK 0x00000080 | |
| 125 #define TDI_RECEIVE_NO_RESPONSE_EXP 0x00000100 | |
| 126 #define TDI_RECEIVE_COPY_LOOKAHEAD 0x00000200 | |
| 127 #define TDI_RECEIVE_ENTIRE_MESSAGE 0x00000400 | |
| 128 #define TDI_RECEIVE_AT_DISPATCH_LEVEL 0x00000800 | |
| 129 #define TDI_RECEIVE_CONTROL_INFO 0x00001000 | |
| 130 | |
| 131 /* Listen flags */ | |
| 132 #define TDI_QUERY_ACCEPT 0x00000001 | |
| 133 | |
| 134 /* Options used for both SendOptions and ReceiveIndicators */ | |
| 135 #define TDI_SEND_EXPEDITED 0x0020 | |
| 136 #define TDI_SEND_PARTIAL 0x0040 | |
| 137 #define TDI_SEND_NO_RESPONSE_EXPECTED 0x0080 | |
| 138 #define TDI_SEND_NON_BLOCKING 0x0100 | |
| 139 #define TDI_SEND_AND_DISCONNECT 0x0200 | |
| 140 | |
| 141 /* Disconnect Flags */ | |
| 142 #define TDI_DISCONNECT_WAIT 0x0001 | |
| 143 #define TDI_DISCONNECT_ABORT 0x0002 | |
| 144 #define TDI_DISCONNECT_RELEASE 0x0004 | |
| 145 | |
| 146 /* TdiRequest structure for TdiQueryInformation request */ | |
| 147 typedef struct _TDI_REQUEST_QUERY_INFORMATION { | |
| 148 TDI_REQUEST Request; | |
| 149 ULONG QueryType; | |
| 150 PTDI_CONNECTION_INFORMATION RequestConnectionInformation; | |
| 151 } TDI_REQUEST_QUERY_INFORMATION, *PTDI_REQUEST_QUERY_INFORMATION; | |
| 152 | |
| 153 /* TdiRequest structure for TdiSetInformation request */ | |
| 154 typedef struct _TDI_REQUEST_SET_INFORMATION { | |
| 155 TDI_REQUEST Request; | |
| 156 ULONG SetType; | |
| 157 PTDI_CONNECTION_INFORMATION RequestConnectionInformation; | |
| 158 } TDI_REQUEST_SET_INFORMATION, *PTDI_REQUEST_SET_INFORMATION; | |
| 159 | |
| 160 typedef TDI_REQUEST_SET_INFORMATION TDI_REQ_SET_INFORMATION, *PTDI_REQ_SET_INFORMATION; | |
| 161 | |
| 162 typedef union _TDI_REQUEST_TYPE { | |
| 163 TDI_REQUEST_ACCEPT TdiAccept; | |
| 164 TDI_REQUEST_CONNECT TdiConnect; | |
| 165 TDI_REQUEST_DISCONNECT TdiDisconnect; | |
| 166 TDI_REQUEST_LISTEN TdiListen; | |
| 167 TDI_REQUEST_QUERY_INFORMATION TdiQueryInformation; | |
| 168 TDI_REQUEST_RECEIVE TdiReceive; | |
| 169 TDI_REQUEST_RECEIVE_DATAGRAM TdiReceiveDatagram; | |
| 170 TDI_REQUEST_SEND TdiSend; | |
| 171 TDI_REQUEST_SEND_DATAGRAM TdiSendDatagram; | |
| 172 TDI_REQUEST_SET_EVENT_HANDLER TdiSetEventHandler; | |
| 173 TDI_REQUEST_SET_INFORMATION TdiSetInformation; | |
| 174 } TDI_REQUEST_TYPE, *PTDI_REQUEST_TYPE; | |
| 175 | |
| 176 /* Query information types */ | |
| 177 | |
| 178 /* Generic query info types that must be supported by all transports */ | |
| 179 #define TDI_QUERY_BROADCAST_ADDRESS 0x00000001 | |
| 180 #define TDI_QUERY_PROVIDER_INFO 0x00000002 | |
| 181 #define TDI_QUERY_ADDRESS_INFO 0x00000003 | |
| 182 #define TDI_QUERY_CONNECTION_INFO 0x00000004 | |
| 183 #define TDI_QUERY_PROVIDER_STATISTICS 0x00000005 | |
| 184 #define TDI_QUERY_DATAGRAM_INFO 0x00000006 | |
| 185 #define TDI_QUERY_DATA_LINK_ADDRESS 0x00000007 | |
| 186 #define TDI_QUERY_NETWORK_ADDRESS 0x00000008 | |
| 187 #define TDI_QUERY_MAX_DATAGRAM_INFO 0x00000009 | |
| 188 | |
| 189 /* Netbios specific query information types */ | |
| 190 #define TDI_QUERY_ADAPTER_STATUS 0x00000100 | |
| 191 #define TDI_QUERY_SESSION_STATUS 0x00000200 | |
| 192 #define TDI_QUERY_FIND_NAME 0x00000300 | |
| 193 | |
| 194 /* Structures used for TdiQueryInformation and TdiSetInformation */ | |
| 195 | |
| 196 typedef struct _TDI_ENDPOINT_INFO { | |
| 197 ULONG State; | |
| 198 ULONG Event; | |
| 199 ULONG TransmittedTsdus; | |
| 200 ULONG ReceivedTsdus; | |
| 201 ULONG TransmissionErrors; | |
| 202 ULONG ReceiveErrors; | |
| 203 ULONG MinimumLookaheadData; | |
| 204 ULONG MaximumLookaheadData; | |
| 205 ULONG PriorityLevel; | |
| 206 ULONG SecurityLevel; | |
| 207 ULONG SecurityCompartment; | |
| 208 } TDI_ENDPOINT_INFO, *PTDI_ENDPOINT_INFO; | |
| 209 | |
| 210 typedef struct _TDI_CONNECTION_INFO { | |
| 211 ULONG State; | |
| 212 ULONG Event; | |
| 213 ULONG TransmittedTsdus; | |
| 214 ULONG ReceivedTsdus; | |
| 215 ULONG TransmissionErrors; | |
| 216 ULONG ReceiveErrors; | |
| 217 LARGE_INTEGER Throughput; | |
| 218 LARGE_INTEGER Delay; | |
| 219 ULONG SendBufferSize; | |
| 220 ULONG ReceiveBufferSize; | |
| 221 BOOLEAN Unreliable; | |
| 222 } TDI_CONNECTION_INFO, *PTDI_CONNECTION_INFO; | |
| 223 | |
| 224 typedef struct _TDI_DATAGRAM_INFO { | |
| 225 ULONG MaximumDatagramBytes; | |
| 226 ULONG MaximumDatagramCount; | |
| 227 } TDI_DATAGRAM_INFO, *PTDI_DATAGRAM_INFO; | |
| 228 | |
| 229 typedef struct _TDI_MAX_DATAGRAM_INFO { | |
| 230 ULONG MaxDatagramSize; | |
| 231 } TDI_MAX_DATAGRAM_INFO, *PTDI_MAX_DATAGRAM_INFO; | |
| 232 | |
| 233 typedef struct _TDI_PROVIDER_INFO { | |
| 234 ULONG Version; | |
| 235 ULONG MaxSendSize; | |
| 236 ULONG MaxConnectionUserData; | |
| 237 ULONG MaxDatagramSize; | |
| 238 ULONG ServiceFlags; | |
| 239 ULONG MinimumLookaheadData; | |
| 240 ULONG MaximumLookaheadData; | |
| 241 ULONG NumberOfResources; | |
| 242 LARGE_INTEGER StartTime; | |
| 243 } TDI_PROVIDER_INFO, *PTDI_PROVIDER_INFO; | |
| 244 | |
| 245 #define TDI_SERVICE_CONNECTION_MODE 0x00000001 | |
| 246 #define TDI_SERVICE_ORDERLY_RELEASE 0x00000002 | |
| 247 #define TDI_SERVICE_CONNECTIONLESS_MODE 0x00000004 | |
| 248 #define TDI_SERVICE_ERROR_FREE_DELIVERY 0x00000008 | |
| 249 #define TDI_SERVICE_SECURITY_LEVEL 0x00000010 | |
| 250 #define TDI_SERVICE_BROADCAST_SUPPORTED 0x00000020 | |
| 251 #define TDI_SERVICE_MULTICAST_SUPPORTED 0x00000040 | |
| 252 #define TDI_SERVICE_DELAYED_ACCEPTANCE 0x00000080 | |
| 253 #define TDI_SERVICE_EXPEDITED_DATA 0x00000100 | |
| 254 #define TDI_SERVICE_INTERNAL_BUFFERING 0x00000200 | |
| 255 #define TDI_SERVICE_ROUTE_DIRECTED 0x00000400 | |
| 256 #define TDI_SERVICE_NO_ZERO_LENGTH 0x00000800 | |
| 257 #define TDI_SERVICE_POINT_TO_POINT 0x00001000 | |
| 258 #define TDI_SERVICE_MESSAGE_MODE 0x00002000 | |
| 259 #define TDI_SERVICE_HALF_DUPLEX 0x00004000 | |
| 260 #define TDI_SERVICE_DGRAM_CONNECTION 0x00008000 | |
| 261 #define TDI_SERVICE_FORCE_ACCESS_CHECK 0x00010000 | |
| 262 #define TDI_SERVICE_SEND_AND_DISCONNECT 0x00020000 | |
| 263 #define TDI_SERVICE_DIRECT_ACCEPT 0x00040000 | |
| 264 #define TDI_SERVICE_ACCEPT_LOCAL_ADDR 0x00080000 | |
| 265 | |
| 266 typedef struct _TDI_PROVIDER_RESOURCE_STATS { | |
| 267 ULONG ResourceId; | |
| 268 ULONG MaximumResourceUsed; | |
| 269 ULONG AverageResourceUsed; | |
| 270 ULONG ResourceExhausted; | |
| 271 } TDI_PROVIDER_RESOURCE_STATS, *PTDI_PROVIDER_RESOURCE_STATS; | |
| 272 | |
| 273 typedef struct _TDI_PROVIDER_STATISTICS { | |
| 274 ULONG Version; | |
| 275 ULONG OpenConnections; | |
| 276 ULONG ConnectionsAfterNoRetry; | |
| 277 ULONG ConnectionsAfterRetry; | |
| 278 ULONG LocalDisconnects; | |
| 279 ULONG RemoteDisconnects; | |
| 280 ULONG LinkFailures; | |
| 281 ULONG AdapterFailures; | |
| 282 ULONG SessionTimeouts; | |
| 283 ULONG CancelledConnections; | |
| 284 ULONG RemoteResourceFailures; | |
| 285 ULONG LocalResourceFailures; | |
| 286 ULONG NotFoundFailures; | |
| 287 ULONG NoListenFailures; | |
| 288 ULONG DatagramsSent; | |
| 289 LARGE_INTEGER DatagramBytesSent; | |
| 290 ULONG DatagramsReceived; | |
| 291 LARGE_INTEGER DatagramBytesReceived; | |
| 292 ULONG PacketsSent; | |
| 293 ULONG PacketsReceived; | |
| 294 ULONG DataFramesSent; | |
| 295 LARGE_INTEGER DataFrameBytesSent; | |
| 296 ULONG DataFramesReceived; | |
| 297 LARGE_INTEGER DataFrameBytesReceived; | |
| 298 ULONG DataFramesResent; | |
| 299 LARGE_INTEGER DataFrameBytesResent; | |
| 300 ULONG DataFramesRejected; | |
| 301 LARGE_INTEGER DataFrameBytesRejected; | |
| 302 ULONG ResponseTimerExpirations; | |
| 303 ULONG AckTimerExpirations; | |
| 304 ULONG MaximumSendWindow; | |
| 305 ULONG AverageSendWindow; | |
| 306 ULONG PiggybackAckQueued; | |
| 307 ULONG PiggybackAckTimeouts; | |
| 308 LARGE_INTEGER WastedPacketSpace; | |
| 309 ULONG WastedSpacePackets; | |
| 310 ULONG NumberOfResources; | |
| 311 TDI_PROVIDER_RESOURCE_STATS ResourceStats[1]; | |
| 312 } TDI_PROVIDER_STATISTICS, *PTDI_PROVIDER_STATISTICS; | |
| 313 | |
| 314 #define TDI_EVENT_CONNECT 0 | |
| 315 #define TDI_EVENT_DISCONNECT 1 | |
| 316 #define TDI_EVENT_ERROR 2 | |
| 317 #define TDI_EVENT_RECEIVE 3 | |
| 318 #define TDI_EVENT_RECEIVE_DATAGRAM 4 | |
| 319 #define TDI_EVENT_RECEIVE_EXPEDITED 5 | |
| 320 #define TDI_EVENT_SEND_POSSIBLE 6 | |
| 321 | |
| 322 typedef struct _TDI_REQUEST_ASSOCIATE { | |
| 323 TDI_REQUEST Request; | |
| 324 HANDLE AddressHandle; | |
| 325 } TDI_REQUEST_ASSOCIATE_ADDRESS, *PTDI_REQUEST_ASSOCIATE_ADDRESS; | |
| 326 | |
| 327 #define NDIS_PACKET_POOL_TAG_FOR_NWLNKIPX 'iPDN' | |
| 328 #define NDIS_PACKET_POOL_TAG_FOR_NWLNKSPX 'sPDN' | |
| 329 #define NDIS_PACKET_POOL_TAG_FOR_NWLNKNB 'nPDN' | |
| 330 #define NDIS_PACKET_POOL_TAG_FOR_TCPIP 'tPDN' | |
| 331 #define NDIS_PACKET_POOL_TAG_FOR_NBF 'bPDN' | |
| 332 #define NDIS_PACKET_POOL_TAG_FOR_APPLETALK 'aPDN' | |
| 333 | |
| 334 typedef struct _TA_ADDRESS { | |
| 335 USHORT AddressLength; | |
| 336 USHORT AddressType; | |
| 337 UCHAR Address[1]; | |
| 338 } TA_ADDRESS, *PTA_ADDRESS; | |
| 339 | |
| 340 #define TDI_ADDRESS_TYPE_UNSPEC 0 | |
| 341 #define TDI_ADDRESS_TYPE_UNIX 1 | |
| 342 #define TDI_ADDRESS_TYPE_IP 2 | |
| 343 #define TDI_ADDRESS_TYPE_IMPLINK 3 | |
| 344 #define TDI_ADDRESS_TYPE_PUP 4 | |
| 345 #define TDI_ADDRESS_TYPE_CHAOS 5 | |
| 346 #define TDI_ADDRESS_TYPE_NS 6 | |
| 347 #define TDI_ADDRESS_TYPE_IPX 6 | |
| 348 #define TDI_ADDRESS_TYPE_NBS 7 | |
| 349 #define TDI_ADDRESS_TYPE_ECMA 8 | |
| 350 #define TDI_ADDRESS_TYPE_DATAKIT 9 | |
| 351 #define TDI_ADDRESS_TYPE_CCITT 10 | |
| 352 #define TDI_ADDRESS_TYPE_SNA 11 | |
| 353 #define TDI_ADDRESS_TYPE_DECnet 12 | |
| 354 #define TDI_ADDRESS_TYPE_DLI 13 | |
| 355 #define TDI_ADDRESS_TYPE_LAT 14 | |
| 356 #define TDI_ADDRESS_TYPE_HYLINK 15 | |
| 357 #define TDI_ADDRESS_TYPE_APPLETALK 16 | |
| 358 #define TDI_ADDRESS_TYPE_NETBIOS 17 | |
| 359 #define TDI_ADDRESS_TYPE_8022 18 | |
| 360 #define TDI_ADDRESS_TYPE_OSI_TSAP 19 | |
| 361 #define TDI_ADDRESS_TYPE_NETONE 20 | |
| 362 #define TDI_ADDRESS_TYPE_VNS 21 | |
| 363 #define TDI_ADDRESS_TYPE_NETBIOS_EX 22 | |
| 364 #define TDI_ADDRESS_TYPE_IP6 23 | |
| 365 #define TDI_ADDRESS_TYPE_NETBIOS_UNICODE_EX 24 | |
| 366 | |
| 367 #define TdiTransportAddress "TransportAddress" | |
| 368 #define TdiConnectionContext "ConnectionContext" | |
| 369 #define TDI_TRANSPORT_ADDRESS_LENGTH (sizeof(TdiTransportAddress) - 1) | |
| 370 #define TDI_CONNECTION_CONTEXT_LENGTH (sizeof(TdiConnectionContext) - 1) | |
| 371 | |
| 372 typedef struct _TRANSPORT_ADDRESS { | |
| 373 LONG TAAddressCount; | |
| 374 TA_ADDRESS Address[1]; | |
| 375 } TRANSPORT_ADDRESS, *PTRANSPORT_ADDRESS; | |
| 376 | |
| 377 typedef struct _TDI_ACTION_HEADER { | |
| 378 ULONG TransportId; | |
| 379 USHORT ActionCode; | |
| 380 USHORT Reserved; | |
| 381 } TDI_ACTION_HEADER, *PTDI_ACTION_HEADER; | |
| 382 | |
| 383 typedef struct _TDI_ADDRESS_INFO { | |
| 384 ULONG ActivityCount; | |
| 385 TRANSPORT_ADDRESS Address; | |
| 386 } TDI_ADDRESS_INFO, *PTDI_ADDRESS_INFO; | |
| 387 | |
| 388 #include "pshpack1.h" | |
| 389 | |
| 390 typedef struct _TDI_ADDRESS_8022 { | |
| 391 UCHAR MACAddress[6]; | |
| 392 } TDI_ADDRESS_8022, *PTDI_ADDRESS_8022; | |
| 393 | |
| 394 #define TDI_ADDRESS_LENGTH_8022 sizeof(TDI_ADDRESS_8022); | |
| 395 | |
| 396 typedef struct _TDI_ADDRESS_APPLETALK { | |
| 397 USHORT Network; | |
| 398 UCHAR Node; | |
| 399 UCHAR Socket; | |
| 400 } TDI_ADDRESS_APPLETALK, *PTDI_ADDRESS_APPLETALK; | |
| 401 | |
| 402 #define TDI_ADDRESS_LENGTH_APPLETALK sizeof(TDI_ADDRESS_APPLETALK) | |
| 403 | |
| 404 typedef struct _TDI_ADDRESS_IP { | |
| 405 USHORT sin_port; | |
| 406 ULONG in_addr; | |
| 407 UCHAR sin_zero[8]; | |
| 408 } TDI_ADDRESS_IP, *PTDI_ADDRESS_IP; | |
| 409 | |
| 410 #define TDI_ADDRESS_LENGTH_IP sizeof(TDI_ADDRESS_IP) | |
| 411 | |
| 412 typedef struct _TDI_ADDRESS_IPX { | |
| 413 ULONG NetworkAddress; | |
| 414 UCHAR NodeAddress[6]; | |
| 415 USHORT Socket; | |
| 416 } TDI_ADDRESS_IPX, *PTDI_ADDRESS_IPX; | |
| 417 | |
| 418 #define TDI_ADDRESS_LENGTH_IPX sizeof(TDI_ADDRESS_IPX) | |
| 419 | |
| 420 /* TDI_ADDRESS_NETBIOS.NetbiosNameType constants */ | |
| 421 #define TDI_ADDRESS_NETBIOS_TYPE_UNIQUE 0x0000 | |
| 422 #define TDI_ADDRESS_NETBIOS_TYPE_GROUP 0x0001 | |
| 423 #define TDI_ADDRESS_NETBIOS_TYPE_QUICK_UNIQUE 0x0002 | |
| 424 #define TDI_ADDRESS_NETBIOS_TYPE_QUICK_GROUP 0x0003 | |
| 425 | |
| 426 typedef struct _TDI_ADDRESS_NETBIOS { | |
| 427 USHORT NetbiosNameType; | |
| 428 UCHAR NetbiosName[16]; | |
| 429 } TDI_ADDRESS_NETBIOS, *PTDI_ADDRESS_NETBIOS; | |
| 430 | |
| 431 #define TDI_ADDRESS_LENGTH_NETBIOS sizeof(TDI_ADDRESS_NETBIOS) | |
| 432 | |
| 433 typedef struct _TDI_ADDRESS_NETBIOS_EX { | |
| 434 UCHAR EndpointName[16]; | |
| 435 TDI_ADDRESS_NETBIOS NetbiosAddress; | |
| 436 } TDI_ADDRESS_NETBIOS_EX, *PTDI_ADDRESS_NETBIOS_EX; | |
| 437 | |
| 438 #define TDI_ADDRESS_LENGTH_NETBIOS_EX sizeof(TDI_ADDRESS_NETBIOS_EX) | |
| 439 | |
| 440 /* TDI_ADDRESS_NETONE.NetoneNameType constants */ | |
| 441 #define TDI_ADDRESS_NETONE_TYPE_UNIQUE 0x0000 | |
| 442 #define TDI_ADDRESS_NETONE_TYPE_ROTORED 0x0001 | |
| 443 | |
| 444 typedef struct _TDI_ADDRESS_NETONE { | |
| 445 USHORT NetoneNameType; | |
| 446 UCHAR NetoneName[20]; | |
| 447 } TDI_ADDRESS_NETONE, *PTDI_ADDRESS_NETONE; | |
| 448 | |
| 449 #define TDI_ADDRESS_LENGTH_NETONE sizeof(TDI_ADDRESS_NETONE) | |
| 450 | |
| 451 typedef struct _TDI_ADDRESS_NS | |
| 452 { | |
| 453 ULONG NetworkAddress; | |
| 454 UCHAR NodeAddress[6]; | |
| 455 USHORT Socket; | |
| 456 } TDI_ADDRESS_NS, *PTDI_ADDRESS_NS; | |
| 457 | |
| 458 #define TDI_ADDRESS_LENGTH_NS sizeof(TDI_ADDRESS_NS) | |
| 459 | |
| 460 #define ISO_MAX_ADDR_LENGTH 64 | |
| 461 | |
| 462 /* TDI_ADDRESS_OSI_TSAP.tp_addr_type constants */ | |
| 463 #define ISO_HIERARCHICAL 0 | |
| 464 #define ISO_NON_HIERARCHICAL 1 | |
| 465 | |
| 466 typedef struct _TDI_ADDRESS_OSI_TSAP { | |
| 467 USHORT tp_addr_type; | |
| 468 USHORT tp_taddr_len; | |
| 469 USHORT tp_tsel_len; | |
| 470 UCHAR tp_addr[ISO_MAX_ADDR_LENGTH]; | |
| 471 } TDI_ADDRESS_OSI_TSAP, *PTDI_ADDRESS_OSI_TSAP; | |
| 472 | |
| 473 #define TDI_ADDRESS_LENGTH_OSI_TSAP sizeof(TDI_ADDRESS_OSI_TSAP) | |
| 474 | |
| 475 typedef struct _TDI_ADDRESS_VNS { | |
| 476 UCHAR net_address[4]; | |
| 477 UCHAR subnet_addr[2]; | |
| 478 UCHAR port[2]; | |
| 479 UCHAR hops; | |
| 480 UCHAR filler[5]; | |
| 481 } TDI_ADDRESS_VNS, *PTDI_ADDRESS_VNS; | |
| 482 | |
| 483 #define TDI_ADDRESS_LENGTH_VNS sizeof(TDI_ADDRESS_VNS) | |
| 484 | |
| 485 typedef struct _TDI_ADDRESS_IP6 { | |
| 486 USHORT sin6_port; | |
| 487 ULONG sin6_flowinfo; | |
| 488 USHORT sin6_addr[8]; | |
| 489 ULONG sin6_scope_id; | |
| 490 } TDI_ADDRESS_IP6, *PTDI_ADDRESS_IP6; | |
| 491 | |
| 492 #define TDI_ADDRESS_LENGTH_IP6 sizeof(TDI_ADDRESS_IP6) | |
| 493 | |
| 494 enum eNameBufferType { | |
| 495 NBT_READONLY = 0, | |
| 496 NBT_WRITEONLY, | |
| 497 NBT_READWRITE, | |
| 498 NBT_WRITTEN | |
| 499 }; | |
| 500 | |
| 501 typedef struct _TDI_ADDRESS_NETBIOS_UNICODE_EX { | |
| 502 USHORT NetbiosNameType; | |
| 503 enum eNameBufferType NameBufferType; | |
| 504 UNICODE_STRING EndpointName; | |
| 505 UNICODE_STRING RemoteName; | |
| 506 WCHAR EndpointBuffer[17]; | |
| 507 WCHAR RemoteNameBuffer[1]; | |
| 508 } TDI_ADDRESS_NETBIOS_UNICODE_EX, *PTDI_ADDRESS_NETBIOS_UNICODE_EX; | |
| 509 | |
| 510 typedef struct _TA_APPLETALK_ADDR { | |
| 511 LONG TAAddressCount; | |
| 512 struct _AddrAtalk { | |
| 513 USHORT AddressLength; | |
| 514 USHORT AddressType; | |
| 515 TDI_ADDRESS_APPLETALK Address[1]; | |
| 516 } Address[1]; | |
| 517 } TA_APPLETALK_ADDRESS, *PTA_APPLETALK_ADDRESS; | |
| 518 | |
| 519 typedef struct _TA_ADDRESS_IP { | |
| 520 LONG TAAddressCount; | |
| 521 struct _AddrIp { | |
| 522 USHORT AddressLength; | |
| 523 USHORT AddressType; | |
| 524 TDI_ADDRESS_IP Address[1]; | |
| 525 } Address[1]; | |
| 526 } TA_IP_ADDRESS, *PTA_IP_ADDRESS; | |
| 527 | |
| 528 typedef struct _TA_ADDRESS_IPX { | |
| 529 LONG TAAddressCount; | |
| 530 struct _AddrIpx { | |
| 531 USHORT AddressLength; | |
| 532 USHORT AddressType; | |
| 533 TDI_ADDRESS_IPX Address[1]; | |
| 534 } Address[1]; | |
| 535 } TA_IPX_ADDRESS, *PTA_IPX_ADDRESS; | |
| 536 | |
| 537 typedef struct _TA_NETBIOS_ADDRESS { | |
| 538 LONG TAAddressCount; | |
| 539 struct _Addr{ | |
| 540 USHORT AddressLength; | |
| 541 USHORT AddressType; | |
| 542 TDI_ADDRESS_NETBIOS Address[1]; | |
| 543 } Address[1]; | |
| 544 } TA_NETBIOS_ADDRESS, *PTA_NETBIOS_ADDRESS; | |
| 545 | |
| 546 typedef struct _TA_ADDRESS_NS { | |
| 547 LONG TAAddressCount; | |
| 548 struct _AddrNs { | |
| 549 USHORT AddressLength; | |
| 550 USHORT AddressType; | |
| 551 TDI_ADDRESS_NS Address[1]; | |
| 552 } Address[1]; | |
| 553 } TA_NS_ADDRESS, *PTA_NS_ADDRESS; | |
| 554 | |
| 555 typedef struct _TA_ADDRESS_VNS { | |
| 556 LONG TAAddressCount; | |
| 557 struct _AddrVns { | |
| 558 USHORT AddressLength; | |
| 559 USHORT AddressType; | |
| 560 TDI_ADDRESS_VNS Address[1]; | |
| 561 } Address[1]; | |
| 562 } TA_VNS_ADDRESS, *PTA_VNS_ADDRESS; | |
| 563 | |
| 564 typedef struct _TA_ADDRESS_IP6 { | |
| 565 LONG TAAddressCount; | |
| 566 struct _AddrIp6 { | |
| 567 USHORT AddressLength; | |
| 568 USHORT AddressType; | |
| 569 TDI_ADDRESS_IP6 Address[1]; | |
| 570 } Address [1]; | |
| 571 } TA_IP6_ADDRESS, *PTA_IP6_ADDRESS; | |
| 572 | |
| 573 typedef struct _TA_ADDRESS_NETBIOS_UNICODE_EX { | |
| 574 LONG TAAddressCount; | |
| 575 struct _AddrNetbiosWCharEx { | |
| 576 USHORT AddressLength; | |
| 577 USHORT AddressType; | |
| 578 TDI_ADDRESS_NETBIOS_UNICODE_EX Address[1]; | |
| 579 } Address [1]; | |
| 580 } TA_NETBIOS_UNICODE_EX_ADDRESS, *PTA_NETBIOS_UNICODE_EX_ADDRESS; | |
| 581 | |
| 582 #include "poppack.h" | |
| 583 | |
| 584 #ifdef __cplusplus | |
| 585 } | |
| 586 #endif | |
| 587 | |
| 588 #endif /* __TDI_H */ |
