mirror of
https://github.com/reactos/reactos.git
synced 2025-02-25 01:39:30 +00:00
215 lines
4.8 KiB
C
215 lines
4.8 KiB
C
/*
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
* PROJECT: ReactOS TCP/IP protocol driver
|
|
* FILE: include/info.h
|
|
* PURPOSE: TdiQueryInformation definitions
|
|
*/
|
|
#ifndef __INFO_H
|
|
#define __INFO_H
|
|
|
|
#define MAX_PHYSADDR_LEN 8
|
|
#define MAX_IFDESCR_LEN 256
|
|
|
|
typedef struct IPSNMP_INFO {
|
|
ULONG Forwarding;
|
|
ULONG DefaultTTL;
|
|
ULONG InReceives;
|
|
ULONG InHdrErrors;
|
|
ULONG InAddrErrors;
|
|
ULONG ForwDatagrams;
|
|
ULONG InUnknownProtos;
|
|
ULONG InDiscards;
|
|
ULONG InDelivers;
|
|
ULONG OutRequests;
|
|
ULONG RoutingDiscards;
|
|
ULONG OutDiscards;
|
|
ULONG OutNoRoutes;
|
|
ULONG ReasmTimeout;
|
|
ULONG ReasmReqds;
|
|
ULONG ReasmOks;
|
|
ULONG ReasmFails;
|
|
ULONG FragOks;
|
|
ULONG FragFails;
|
|
ULONG FragCreates;
|
|
ULONG NumIf;
|
|
ULONG NumAddr;
|
|
ULONG NumRoutes;
|
|
} IPSNMP_INFO, *PIPSNMP_INFO;
|
|
|
|
typedef struct IPADDR_ENTRY {
|
|
ULONG Addr;
|
|
ULONG Index;
|
|
ULONG Mask;
|
|
ULONG BcastAddr;
|
|
ULONG ReasmSize;
|
|
USHORT Context;
|
|
USHORT Pad;
|
|
} IPADDR_ENTRY, *PIPADDR_ENTRY;
|
|
|
|
#define ARP_ENTRY_STATIC 4
|
|
#define ARP_ENTRY_DYNAMIC 3
|
|
#define ARP_ENTRY_INVALID 2
|
|
#define ARP_ENTRY_OTHER 1
|
|
|
|
typedef struct IPARP_ENTRY {
|
|
ULONG Index;
|
|
ULONG AddrSize;
|
|
UCHAR PhysAddr[8];
|
|
ULONG LogAddr;
|
|
ULONG Type;
|
|
} IPARP_ENTRY, *PIPARP_ENTRY;
|
|
|
|
typedef struct IPROUTE_ENTRY {
|
|
ULONG Dest;
|
|
ULONG Index; //matches if_index in IFEntry and iae_index in IPAddrEntry
|
|
ULONG Metric1;
|
|
ULONG Metric2;
|
|
ULONG Metric3;
|
|
ULONG Metric4;
|
|
ULONG Gw;
|
|
ULONG Type;
|
|
ULONG Proto;
|
|
ULONG Age;
|
|
ULONG Mask;
|
|
ULONG Metric5;
|
|
ULONG Info;
|
|
} IPROUTE_ENTRY, *PIPROUTE_ENTRY;
|
|
|
|
typedef struct IFENTRY {
|
|
ULONG Index;
|
|
ULONG Type;
|
|
ULONG Mtu;
|
|
ULONG Speed;
|
|
ULONG PhysAddrLen;
|
|
UCHAR PhysAddr[MAX_PHYSADDR_LEN];
|
|
ULONG AdminStatus;
|
|
ULONG OperStatus;
|
|
ULONG LastChange;
|
|
ULONG InOctets;
|
|
ULONG InUcastPackets;
|
|
ULONG InNUcastPackets;
|
|
ULONG InDiscards;
|
|
ULONG InErrors;
|
|
ULONG InUnknownProtos;
|
|
ULONG OutOctets;
|
|
ULONG OutUcastPackets;
|
|
ULONG OutNUcastPackets;
|
|
ULONG OutDiscards;
|
|
ULONG OutErrors;
|
|
ULONG OutQLen;
|
|
ULONG DescrLen;
|
|
} IFENTRY, *PIFENTRY;
|
|
|
|
#define IP_MIB_STATS_ID 1
|
|
#define IF_MIB_STATS_ID 1
|
|
|
|
#ifndef IP_MIB_ROUTETABLE_ENTRY_ID
|
|
#define IP_MIB_ROUTETABLE_ENTRY_ID 0x101
|
|
#endif
|
|
#ifndef IP_MIB_ADDRTABLE_ENTRY_ID
|
|
#define IP_MIB_ADDRTABLE_ENTRY_ID 0x102
|
|
#endif
|
|
#ifndef IP_MIB_ARPTABLE_ENTRY_ID
|
|
#define IP_MIB_ARPTABLE_ENTRY_ID 0x101
|
|
#endif
|
|
#ifndef MAX_PHYSADDR_SIZE
|
|
#define MAX_PHYSADDR_SIZE 8
|
|
#endif
|
|
|
|
|
|
/* Only UDP is supported */
|
|
#define TDI_SERVICE_FLAGS (TDI_SERVICE_CONNECTIONLESS_MODE | \
|
|
TDI_SERVICE_BROADCAST_SUPPORTED)
|
|
|
|
#define TCP_MIB_STAT_ID 1
|
|
#define UDP_MIB_STAT_ID 1
|
|
#define TCP_MIB_TABLE_ID 0x101
|
|
#define UDP_MIB_TABLE_ID 0x101
|
|
|
|
#define TL_INSTANCE 0
|
|
|
|
|
|
typedef struct ADDRESS_INFO {
|
|
ULONG LocalAddress;
|
|
ULONG LocalPort;
|
|
} ADDRESS_INFO, *PADDRESS_INFO;
|
|
|
|
typedef union TDI_INFO {
|
|
TDI_CONNECTION_INFO ConnInfo;
|
|
TDI_ADDRESS_INFO AddrInfo;
|
|
TDI_PROVIDER_INFO ProviderInfo;
|
|
TDI_PROVIDER_STATISTICS ProviderStats;
|
|
} TDI_INFO, *PTDI_INFO;
|
|
|
|
TDI_STATUS InfoCopyOut( PCHAR DataOut, UINT SizeOut,
|
|
PNDIS_BUFFER ClientBuf, PUINT ClientBufSize );
|
|
|
|
TDI_STATUS InfoTdiQueryInformationEx(
|
|
PTDI_REQUEST Request,
|
|
TDIObjectID *ID,
|
|
PNDIS_BUFFER Buffer,
|
|
PUINT BufferSize,
|
|
PVOID Context);
|
|
|
|
TDI_STATUS InfoTdiSetInformationEx(
|
|
PTDI_REQUEST Request,
|
|
TDIObjectID *ID,
|
|
PVOID Buffer,
|
|
UINT BufferSize);
|
|
|
|
/* Network layer info functions */
|
|
TDI_STATUS InfoNetworkLayerTdiQueryEx( UINT InfoClass,
|
|
UINT InfoType,
|
|
UINT InfoId,
|
|
PVOID Context,
|
|
TDIEntityID *id,
|
|
PNDIS_BUFFER Buffer,
|
|
PUINT BufferSize );
|
|
|
|
TDI_STATUS InfoNetworkLayerTdiSetEx( UINT InfoClass,
|
|
UINT InfoType,
|
|
UINT InfoId,
|
|
PVOID Context,
|
|
TDIEntityID *id,
|
|
PCHAR Buffer,
|
|
UINT BufferSize );
|
|
|
|
TDI_STATUS InfoTransportLayerTdiQueryEx( UINT InfoClass,
|
|
UINT InfoType,
|
|
UINT InfoId,
|
|
PVOID Context,
|
|
TDIEntityID *id,
|
|
PNDIS_BUFFER Buffer,
|
|
PUINT BufferSize );
|
|
|
|
TDI_STATUS InfoTransportLayerTdiSetEx( UINT InfoClass,
|
|
UINT InfoType,
|
|
UINT InfoId,
|
|
PVOID Context,
|
|
TDIEntityID *id,
|
|
PCHAR Buffer,
|
|
UINT BufferSize );
|
|
|
|
TDI_STATUS InfoInterfaceTdiQueryEx( UINT InfoClass,
|
|
UINT InfoType,
|
|
UINT InfoId,
|
|
PVOID Context,
|
|
TDIEntityID *id,
|
|
PNDIS_BUFFER Buffer,
|
|
PUINT BufferSize );
|
|
|
|
TDI_STATUS InfoInterfaceTdiSetEx( UINT InfoClass,
|
|
UINT InfoType,
|
|
UINT InfoId,
|
|
PVOID Context,
|
|
TDIEntityID *id,
|
|
PCHAR Buffer,
|
|
UINT BufferSize );
|
|
|
|
/* Insert and remove interface entities */
|
|
VOID InsertTDIInterfaceEntity( PIP_INTERFACE Interface );
|
|
VOID RemoveTDIInterfaceEntity( PIP_INTERFACE Interface );
|
|
|
|
#endif /* __INFO_H */
|
|
|
|
/* EOF */
|