2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS TCP/IP protocol driver
5 * PURPOSE: TdiQueryInformation definitions
10 #define MAX_PHYSADDR_LEN 8
11 #define MAX_IFDESCR_LEN 256
13 typedef struct IPSNMP_INFO
{
20 ULONG InUnknownProtos
;
24 ULONG RoutingDiscards
;
37 } IPSNMP_INFO
, *PIPSNMP_INFO
;
39 typedef struct IPADDR_ENTRY
{
47 } IPADDR_ENTRY
, *PIPADDR_ENTRY
;
49 #define ARP_ENTRY_STATIC 4
50 #define ARP_ENTRY_DYNAMIC 3
51 #define ARP_ENTRY_INVALID 2
52 #define ARP_ENTRY_OTHER 1
54 typedef struct IPARP_ENTRY
{
60 } IPARP_ENTRY
, *PIPARP_ENTRY
;
62 typedef struct IPROUTE_ENTRY
{
64 ULONG Index
; //matches if_index in IFEntry and iae_index in IPAddrEntry
76 } IPROUTE_ENTRY
, *PIPROUTE_ENTRY
;
78 typedef struct IFENTRY
{
84 UCHAR PhysAddr
[MAX_PHYSADDR_LEN
];
90 ULONG InNUcastPackets
;
93 ULONG InUnknownProtos
;
95 ULONG OutUcastPackets
;
96 ULONG OutNUcastPackets
;
101 } IFENTRY
, *PIFENTRY
;
103 #define IP_MIB_STATS_ID 1
104 #define IF_MIB_STATS_ID 1
106 #ifndef IP_MIB_ROUTETABLE_ENTRY_ID
107 #define IP_MIB_ROUTETABLE_ENTRY_ID 0x101
109 #ifndef IP_MIB_ADDRTABLE_ENTRY_ID
110 #define IP_MIB_ADDRTABLE_ENTRY_ID 0x102
112 #ifndef IP_MIB_ARPTABLE_ENTRY_ID
113 #define IP_MIB_ARPTABLE_ENTRY_ID 0x101
115 #ifndef MAX_PHYSADDR_SIZE
116 #define MAX_PHYSADDR_SIZE 8
120 /* Only UDP is supported */
121 #define TDI_SERVICE_FLAGS (TDI_SERVICE_CONNECTIONLESS_MODE | \
122 TDI_SERVICE_BROADCAST_SUPPORTED)
124 #define TCP_MIB_STAT_ID 1
125 #define UDP_MIB_STAT_ID 1
126 #define TCP_MIB_TABLE_ID 0x101
127 #define UDP_MIB_TABLE_ID 0x101
129 #define TL_INSTANCE 0
132 typedef struct ADDRESS_INFO
{
135 } ADDRESS_INFO
, *PADDRESS_INFO
;
137 typedef union TDI_INFO
{
138 TDI_CONNECTION_INFO ConnInfo
;
139 TDI_ADDRESS_INFO AddrInfo
;
140 TDI_PROVIDER_INFO ProviderInfo
;
141 TDI_PROVIDER_STATISTICS ProviderStats
;
142 } TDI_INFO
, *PTDI_INFO
;
144 TDI_STATUS
InfoCopyOut( PCHAR DataOut
, UINT SizeOut
,
145 PNDIS_BUFFER ClientBuf
, PUINT ClientBufSize
);
147 TDI_STATUS
InfoTdiQueryInformationEx(
148 PTDI_REQUEST Request
,
154 TDI_STATUS
InfoTdiSetInformationEx(
155 PTDI_REQUEST Request
,
160 /* Network layer info functions */
161 TDI_STATUS
InfoNetworkLayerTdiQueryEx( UINT InfoClass
,
169 TDI_STATUS
InfoNetworkLayerTdiSetEx( UINT InfoClass
,
177 TDI_STATUS
InfoTransportLayerTdiQueryEx( UINT InfoClass
,
185 TDI_STATUS
InfoTransportLayerTdiSetEx( UINT InfoClass
,
193 TDI_STATUS
InfoInterfaceTdiQueryEx( UINT InfoClass
,
201 TDI_STATUS
InfoInterfaceTdiSetEx( UINT InfoClass
,
209 /* Insert and remove interface entities */
210 VOID
InsertTDIInterfaceEntity( PIP_INTERFACE Interface
);
211 VOID
RemoveTDIInterfaceEntity( PIP_INTERFACE Interface
);
213 #endif /* __INFO_H */