Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #pragma once
00009
00010 #include <tcpioctl.h>
00011
00012 #define MAX_PHYSADDR_LEN 8
00013 #define MAX_IFDESCR_LEN 256
00014
00015 typedef struct IPSNMP_INFO {
00016 ULONG Forwarding;
00017 ULONG DefaultTTL;
00018 ULONG InReceives;
00019 ULONG InHdrErrors;
00020 ULONG InAddrErrors;
00021 ULONG ForwDatagrams;
00022 ULONG InUnknownProtos;
00023 ULONG InDiscards;
00024 ULONG InDelivers;
00025 ULONG OutRequests;
00026 ULONG RoutingDiscards;
00027 ULONG OutDiscards;
00028 ULONG OutNoRoutes;
00029 ULONG ReasmTimeout;
00030 ULONG ReasmReqds;
00031 ULONG ReasmOks;
00032 ULONG ReasmFails;
00033 ULONG FragOks;
00034 ULONG FragFails;
00035 ULONG FragCreates;
00036 ULONG NumIf;
00037 ULONG NumAddr;
00038 ULONG NumRoutes;
00039 } IPSNMP_INFO, *PIPSNMP_INFO;
00040
00041 typedef struct IPADDR_ENTRY {
00042 ULONG Addr;
00043 ULONG Index;
00044 ULONG Mask;
00045 ULONG BcastAddr;
00046 ULONG ReasmSize;
00047 USHORT Context;
00048 USHORT Pad;
00049 } IPADDR_ENTRY, *PIPADDR_ENTRY;
00050
00051 #define ARP_ENTRY_STATIC 4
00052 #define ARP_ENTRY_DYNAMIC 3
00053 #define ARP_ENTRY_INVALID 2
00054 #define ARP_ENTRY_OTHER 1
00055
00056 typedef struct IPARP_ENTRY {
00057 ULONG Index;
00058 ULONG AddrSize;
00059 UCHAR PhysAddr[8];
00060 ULONG LogAddr;
00061 ULONG Type;
00062 } IPARP_ENTRY, *PIPARP_ENTRY;
00063
00064 typedef struct IPROUTE_ENTRY {
00065 ULONG Dest;
00066 ULONG Index;
00067 ULONG Metric1;
00068 ULONG Metric2;
00069 ULONG Metric3;
00070 ULONG Metric4;
00071 ULONG Gw;
00072 ULONG Type;
00073 ULONG Proto;
00074 ULONG Age;
00075 ULONG Mask;
00076 ULONG Metric5;
00077 ULONG Info;
00078 } IPROUTE_ENTRY, *PIPROUTE_ENTRY;
00079
00080 typedef struct IFENTRY {
00081 ULONG Index;
00082 ULONG Type;
00083 ULONG Mtu;
00084 ULONG Speed;
00085 ULONG PhysAddrLen;
00086 UCHAR PhysAddr[MAX_PHYSADDR_LEN];
00087 ULONG AdminStatus;
00088 ULONG OperStatus;
00089 ULONG LastChange;
00090 ULONG InOctets;
00091 ULONG InUcastPackets;
00092 ULONG InNUcastPackets;
00093 ULONG InDiscards;
00094 ULONG InErrors;
00095 ULONG InUnknownProtos;
00096 ULONG OutOctets;
00097 ULONG OutUcastPackets;
00098 ULONG OutNUcastPackets;
00099 ULONG OutDiscards;
00100 ULONG OutErrors;
00101 ULONG OutQLen;
00102 ULONG DescrLen;
00103 } IFENTRY, *PIFENTRY;
00104
00105
00106 #define TDI_SERVICE_FLAGS (TDI_SERVICE_CONNECTIONLESS_MODE | \
00107 TDI_SERVICE_BROADCAST_SUPPORTED)
00108
00109 #define TCP_MIB_STAT_ID 1
00110 #define UDP_MIB_STAT_ID 1
00111 #define TCP_MIB_TABLE_ID 0x101
00112 #define UDP_MIB_TABLE_ID 0x101
00113
00114 #define TL_INSTANCE 0
00115
00116
00117 typedef struct ADDRESS_INFO {
00118 ULONG LocalAddress;
00119 ULONG LocalPort;
00120 } ADDRESS_INFO, *PADDRESS_INFO;
00121
00122 typedef union TDI_INFO {
00123 TDI_CONNECTION_INFO ConnInfo;
00124 TDI_ADDRESS_INFO AddrInfo;
00125 TDI_PROVIDER_INFO ProviderInfo;
00126 TDI_PROVIDER_STATISTICS ProviderStats;
00127 } TDI_INFO, *PTDI_INFO;
00128
00129 TDI_STATUS InfoCopyOut( PCHAR DataOut, UINT SizeOut,
00130 PNDIS_BUFFER ClientBuf, PUINT ClientBufSize );
00131
00132 TDI_STATUS InfoTdiQueryInformationEx(
00133 PTDI_REQUEST Request,
00134 TDIObjectID *ID,
00135 PNDIS_BUFFER Buffer,
00136 PUINT BufferSize,
00137 PVOID Context);
00138
00139 TDI_STATUS InfoTdiSetInformationEx(
00140 PTDI_REQUEST Request,
00141 TDIObjectID *ID,
00142 PVOID Buffer,
00143 UINT BufferSize);
00144
00145 TDI_STATUS InfoTdiQueryGetAddrTable(TDIEntityID ID,
00146 PNDIS_BUFFER Buffer,
00147 PUINT BufferSize);
00148
00149 TDI_STATUS InfoTdiQueryGetInterfaceMIB(TDIEntityID ID,
00150 PIP_INTERFACE Interface,
00151 PNDIS_BUFFER Buffer,
00152 PUINT BufferSize);
00153
00154 TDI_STATUS InfoTdiQueryGetIPSnmpInfo( TDIEntityID ID,
00155 PIP_INTERFACE IF,
00156 PNDIS_BUFFER Buffer,
00157 PUINT BufferSize );
00158
00159 TDI_STATUS InfoTdiQueryGetRouteTable( PIP_INTERFACE IF,
00160 PNDIS_BUFFER Buffer,
00161 PUINT BufferSize );
00162
00163 TDI_STATUS InfoTdiSetRoute(PIP_INTERFACE IF,
00164 PVOID Buffer,
00165 UINT BufferSize);
00166
00167 TDI_STATUS InfoTdiSetArptableMIB(PIP_INTERFACE IF,
00168 PVOID Buffer,
00169 UINT BufferSize);
00170
00171 TDI_STATUS InfoTdiQueryGetArptableMIB(TDIEntityID ID,
00172 PIP_INTERFACE Interface,
00173 PNDIS_BUFFER Buffer,
00174 PUINT BufferSize);
00175
00176 TDI_STATUS SetAddressFileInfo(TDIObjectID *ID,
00177 PADDRESS_FILE AddrFile,
00178 PVOID Buffer,
00179 UINT BufferSize);
00180
00181 TDI_STATUS GetAddressFileInfo(TDIObjectID *ID,
00182 PADDRESS_FILE AddrFile,
00183 PVOID Buffer,
00184 PUINT BufferSize);
00185
00186
00187 VOID InsertTDIInterfaceEntity( PIP_INTERFACE Interface );
00188
00189 VOID RemoveTDIInterfaceEntity( PIP_INTERFACE Interface );
00190
00191 VOID AddEntity(ULONG EntityType,
00192 PVOID Context,
00193 ULONG Flags);
00194
00195 VOID RemoveEntityByContext(PVOID Context);
00196
00197