Reactos
at master 90 lines 2.3 kB view raw
1#ifndef _NETIOAPI_H_ 2#define _NETIOAPI_H_ 3 4#ifdef __cplusplus 5extern "C" { 6#endif 7 8#ifdef _IPHLPAPI_H 9 #define NETIO_STATUS DWORD 10 #define NETIOAPI_API_ WINAPI 11#else 12 #define NETIO_STATUS NTSTATUS 13 #define NETIOAPI_API_ NTAPI 14#endif 15 16#define NETIOAPI_API NETIO_STATUS NETIOAPI_API_ 17 18#ifdef _WS2IPDEF_ 19#include <ntddndis.h> 20#include <ifdef.h> 21 22typedef struct _MIB_IF_ROW2 { 23 NET_LUID InterfaceLuid; 24 NET_IFINDEX InterfaceIndex; 25 GUID InterfaceGuid; 26 WCHAR Alias[IF_MAX_STRING_SIZE + 1]; 27 WCHAR Description[IF_MAX_STRING_SIZE + 1]; 28 ULONG PhysicalAddressLength; 29 UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; 30 UCHAR PermanentPhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; 31 ULONG Mtu; 32 IFTYPE Type; 33 TUNNEL_TYPE TunnelType; 34 NDIS_MEDIUM MediaType; 35 NDIS_PHYSICAL_MEDIUM PhysicalMediumType; 36 NET_IF_ACCESS_TYPE AccessType; 37 NET_IF_DIRECTION_TYPE DirectionType; 38 struct { 39 BOOLEAN HardwareInterface : 1; 40 BOOLEAN FilterInterface : 1; 41 BOOLEAN ConnectorPresent : 1; 42 BOOLEAN NotAuthenticated : 1; 43 BOOLEAN NotMediaConnected : 1; 44 BOOLEAN Paused : 1; 45 BOOLEAN LowPower : 1; 46 BOOLEAN EndPointInterface : 1; 47 } InterfaceAndOperStatusFlags; 48 IF_OPER_STATUS OperStatus; 49 NET_IF_ADMIN_STATUS AdminStatus; 50 NET_IF_MEDIA_CONNECT_STATE MediaConnectState; 51 NET_IF_NETWORK_GUID NetworkGuid; 52 NET_IF_CONNECTION_TYPE ConnectionType; 53 ULONG64 TransmitLinkSpeed; 54 ULONG64 ReceiveLinkSpeed; 55 ULONG64 InOctets; 56 ULONG64 InUcastPkts; 57 ULONG64 InNUcastPkts; 58 ULONG64 InDiscards; 59 ULONG64 InErrors; 60 ULONG64 InUnknownProtos; 61 ULONG64 InUcastOctets; 62 ULONG64 InMulticastOctets; 63 ULONG64 InBroadcastOctets; 64 ULONG64 OutOctets; 65 ULONG64 OutUcastPkts; 66 ULONG64 OutNUcastPkts; 67 ULONG64 OutDiscards; 68 ULONG64 OutErrors; 69 ULONG64 OutUcastOctets; 70 ULONG64 OutMulticastOctets; 71 ULONG64 OutBroadcastOctets; 72 ULONG64 OutQLen; 73} MIB_IF_ROW2, *PMIB_IF_ROW2; 74 75typedef struct _MIB_IF_TABLE2 76{ 77 ULONG NumEntries; 78 MIB_IF_ROW2 Table[1]; 79} MIB_IF_TABLE2, *PMIB_IF_TABLE2; 80 81NETIOAPI_API GetIfEntry2(IN OUT PMIB_IF_ROW2 Row); 82NETIOAPI_API GetIfTable2(OUT PMIB_IF_TABLE2 *Table); 83 84#endif 85 86#ifdef __cplusplus 87} 88#endif 89 90#endif