2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS TCP/IP protocol driver
5 * PURPOSE: TdiQueryInformation definitions
12 #define MAX_PHYSADDR_LEN 8
13 #define MAX_IFDESCR_LEN 256
15 typedef struct IPSNMP_INFO
{
22 ULONG InUnknownProtos
;
26 ULONG RoutingDiscards
;
39 } IPSNMP_INFO
, *PIPSNMP_INFO
;
41 typedef struct IPADDR_ENTRY
{
49 } IPADDR_ENTRY
, *PIPADDR_ENTRY
;
51 #define ARP_ENTRY_STATIC 4
52 #define ARP_ENTRY_DYNAMIC 3
53 #define ARP_ENTRY_INVALID 2
54 #define ARP_ENTRY_OTHER 1
56 typedef struct IPARP_ENTRY
{
62 } IPARP_ENTRY
, *PIPARP_ENTRY
;
64 typedef struct IPROUTE_ENTRY
{
66 ULONG Index
; //matches if_index in IFEntry and iae_index in IPAddrEntry
78 } IPROUTE_ENTRY
, *PIPROUTE_ENTRY
;
80 typedef struct IFENTRY
{
86 UCHAR PhysAddr
[MAX_PHYSADDR_LEN
];
92 ULONG InNUcastPackets
;
95 ULONG InUnknownProtos
;
97 ULONG OutUcastPackets
;
98 ULONG OutNUcastPackets
;
103 } IFENTRY
, *PIFENTRY
;
105 /* Only UDP is supported */
106 #define TDI_SERVICE_FLAGS (TDI_SERVICE_CONNECTIONLESS_MODE | \
107 TDI_SERVICE_BROADCAST_SUPPORTED)
109 #define TCP_MIB_STAT_ID 1
110 #define UDP_MIB_STAT_ID 1
111 #define TCP_MIB_TABLE_ID 0x101
112 #define UDP_MIB_TABLE_ID 0x101
114 #define TL_INSTANCE 0
117 typedef struct ADDRESS_INFO
{
120 } ADDRESS_INFO
, *PADDRESS_INFO
;
122 typedef union TDI_INFO
{
123 TDI_CONNECTION_INFO ConnInfo
;
124 TDI_ADDRESS_INFO AddrInfo
;
125 TDI_PROVIDER_INFO ProviderInfo
;
126 TDI_PROVIDER_STATISTICS ProviderStats
;
127 } TDI_INFO
, *PTDI_INFO
;
129 TDI_STATUS
InfoCopyOut( PCHAR DataOut
, UINT SizeOut
,
130 PNDIS_BUFFER ClientBuf
, PUINT ClientBufSize
);
132 TDI_STATUS
InfoTdiQueryInformationEx(
133 PTDI_REQUEST Request
,
139 TDI_STATUS
InfoTdiSetInformationEx(
140 PTDI_REQUEST Request
,
145 TDI_STATUS
InfoTdiQueryGetAddrTable(TDIEntityID ID
,
149 TDI_STATUS
InfoTdiQueryGetInterfaceMIB(TDIEntityID ID
,
150 PIP_INTERFACE Interface
,
154 TDI_STATUS
InfoTdiQueryGetIPSnmpInfo( TDIEntityID ID
,
159 TDI_STATUS
InfoTdiQueryGetRouteTable( PIP_INTERFACE IF
,
163 TDI_STATUS
InfoTdiSetRoute(PIP_INTERFACE IF
,
167 TDI_STATUS
InfoTdiSetArptableMIB(PIP_INTERFACE IF
,
171 TDI_STATUS
InfoTdiQueryGetArptableMIB(TDIEntityID ID
,
172 PIP_INTERFACE Interface
,
176 TDI_STATUS
SetAddressFileInfo(TDIObjectID
*ID
,
177 PADDRESS_FILE AddrFile
,
181 TDI_STATUS
GetAddressFileInfo(TDIObjectID
*ID
,
182 PADDRESS_FILE AddrFile
,
186 /* Insert and remove entities */
187 VOID
InsertTDIInterfaceEntity( PIP_INTERFACE Interface
);
189 VOID
RemoveTDIInterfaceEntity( PIP_INTERFACE Interface
);
191 VOID
AddEntity(ULONG EntityType
,
195 VOID
RemoveEntityByContext(PVOID Context
);