xref: /reactos/sdk/include/psdk/tdiinfo.h (revision c2c66aff)
1 /*
2  * tdiinfo.h
3  *
4  * TDI set and query information interface
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 __TDIINFO_H
24 #define __TDIINFO_H
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 typedef struct _TDIEntityID {
31   ULONG  tei_entity;
32   ULONG  tei_instance;
33 } TDIEntityID;
34 
35 #define	MAX_TDI_ENTITIES                  4096
36 #define INVALID_ENTITY_INSTANCE           -1
37 #define	GENERIC_ENTITY				            0
38 #define	ENTITY_LIST_ID				            0
39 #define	ENTITY_TYPE_ID				            1
40 
41 #define	AT_ENTITY					                0x280
42 #define	CL_NL_ENTITY				              0x301
43 #define	CL_TL_ENTITY				              0x401
44 #define	CO_NL_ENTITY				              0x300
45 #define	CO_TL_ENTITY				              0x400
46 #define	ER_ENTITY					                0x380
47 #define	IF_ENTITY					                0x200
48 
49 #define	AT_ARP						                0x280
50 #define	AT_NULL						                0x282
51 #define	CL_TL_NBF					                0x401
52 #define	CL_TL_UDP					                0x403
53 #define	CL_NL_IPX					                0x301
54 #define	CL_NL_IP					                0x303
55 #define	CO_TL_NBF					                0x400
56 #define	CO_TL_SPX					                0x402
57 #define	CO_TL_TCP					                0x404
58 #define	CO_TL_SPP					                0x406
59 #define	ER_ICMP						                0x380
60 #define	IF_GENERIC					              0x200
61 #define	IF_MIB						                0x202
62 
63 /* TDIObjectID.toi_class constants */
64 #define	INFO_CLASS_GENERIC			          0x100
65 #define	INFO_CLASS_PROTOCOL			          0x200
66 #define	INFO_CLASS_IMPLEMENTATION	        0x300
67 
68 /* TDIObjectID.toi_type constants */
69 #define	INFO_TYPE_PROVIDER			          0x100
70 #define	INFO_TYPE_ADDRESS_OBJECT	        0x200
71 #define	INFO_TYPE_CONNECTION		          0x300
72 
73 typedef struct _TDIObjectID {
74 	TDIEntityID  toi_entity;
75 	ULONG  toi_class;
76 	ULONG  toi_type;
77 	ULONG  toi_id;
78 } TDIObjectID;
79 
80 #define	CONTEXT_SIZE				              16
81 
82 typedef struct _TCP_REQUEST_QUERY_INFORMATION_EX {
83   TDIObjectID  ID;
84   ULONG_PTR  Context[CONTEXT_SIZE / sizeof(ULONG_PTR)];
85 } TCP_REQUEST_QUERY_INFORMATION_EX, *PTCP_REQUEST_QUERY_INFORMATION_EX;
86 
87 #if defined(_WIN64)
88 typedef struct _TCP_REQUEST_QUERY_INFORMATION_EX32 {
89   TDIObjectID  ID;
90   ULONG32  Context[CONTEXT_SIZE / sizeof(ULONG32)];
91 } TCP_REQUEST_QUERY_INFORMATION_EX32, *PTCP_REQUEST_QUERY_INFORMATION_EX32;
92 #endif /* _WIN64 */
93 
94 typedef struct _TCP_REQUEST_SET_INFORMATION_EX {
95   TDIObjectID  ID;
96   unsigned int BufferSize;
97   unsigned char Buffer[1];
98 } TCP_REQUEST_SET_INFORMATION_EX, *PTCP_REQUEST_SET_INFORMATION_EX;
99 
100 #ifdef __cplusplus
101 }
102 #endif
103 
104 #endif /* __TDIINFO_H */
105