source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/tdi.h@ 1181

Last change on this file since 1181 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 17.8 KB
Line 
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
31extern "C" {
32#endif
33
34/* Basic types */
35
36typedef LONG TDI_STATUS;
37typedef PVOID CONNECTION_CONTEXT;
38
39typedef 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
48typedef 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
59typedef struct _TDI_REQUEST_STATUS {
60 TDI_STATUS Status;
61 PVOID RequestContext;
62 ULONG BytesTransferred;
63} TDI_REQUEST_STATUS, *PTDI_REQUEST_STATUS;
64
65typedef 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
72typedef 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
78typedef 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
85typedef struct _TDI_DISCONNECT_REQUEST {
86 TDI_REQUEST Request;
87 LARGE_INTEGER Timeout;
88} TDI_REQUEST_DISCONNECT, *PTDI_REQUEST_DISCONNECT;
89
90typedef struct _TDI_REQUEST_SEND {
91 TDI_REQUEST Request;
92 USHORT SendFlags;
93} TDI_REQUEST_SEND, *PTDI_REQUEST_SEND;
94
95typedef struct _TDI_REQUEST_RECEIVE {
96 TDI_REQUEST Request;
97 USHORT ReceiveFlags;
98} TDI_REQUEST_RECEIVE, *PTDI_REQUEST_RECEIVE;
99
100typedef struct _TDI_REQUEST_SEND_DATAGRAM {
101 TDI_REQUEST Request;
102 PTDI_CONNECTION_INFORMATION SendDatagramInformation;
103} TDI_REQUEST_SEND_DATAGRAM, *PTDI_REQUEST_SEND_DATAGRAM;
104
105typedef 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
112typedef 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 */
147typedef 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 */
154typedef 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
160typedef TDI_REQUEST_SET_INFORMATION TDI_REQ_SET_INFORMATION, *PTDI_REQ_SET_INFORMATION;
161
162typedef 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
196typedef 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
210typedef 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
224typedef struct _TDI_DATAGRAM_INFO {
225 ULONG MaximumDatagramBytes;
226 ULONG MaximumDatagramCount;
227} TDI_DATAGRAM_INFO, *PTDI_DATAGRAM_INFO;
228
229typedef struct _TDI_MAX_DATAGRAM_INFO {
230 ULONG MaxDatagramSize;
231} TDI_MAX_DATAGRAM_INFO, *PTDI_MAX_DATAGRAM_INFO;
232
233typedef 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
266typedef 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
273typedef 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
322typedef 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
334typedef 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
372typedef struct _TRANSPORT_ADDRESS {
373 LONG TAAddressCount;
374 TA_ADDRESS Address[1];
375} TRANSPORT_ADDRESS, *PTRANSPORT_ADDRESS;
376
377typedef struct _TDI_ACTION_HEADER {
378 ULONG TransportId;
379 USHORT ActionCode;
380 USHORT Reserved;
381} TDI_ACTION_HEADER, *PTDI_ACTION_HEADER;
382
383typedef struct _TDI_ADDRESS_INFO {
384 ULONG ActivityCount;
385 TRANSPORT_ADDRESS Address;
386} TDI_ADDRESS_INFO, *PTDI_ADDRESS_INFO;
387
388#include "pshpack1.h"
389
390typedef 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
396typedef 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
404typedef 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
412typedef 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
426typedef 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
433typedef 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
444typedef 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
451typedef 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
466typedef 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
475typedef 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
485typedef 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
494enum eNameBufferType {
495 NBT_READONLY = 0,
496 NBT_WRITEONLY,
497 NBT_READWRITE,
498 NBT_WRITTEN
499};
500
501typedef 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
510typedef 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
519typedef 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
528typedef 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
537typedef 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
546typedef 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
555typedef 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
564typedef 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
573typedef 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 */
Note: See TracBrowser for help on using the repository browser.