[PSDK]
[reactos.git] / reactos / include / psdk / netioapi.h
1 #ifndef _NETIOAPI_H_
2 #define _NETIOAPI_H_
3
4 #ifdef __cplusplus
5 extern "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
22 typedef 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
75 typedef struct _MIB_IF_TABLE2
76 {
77 ULONG NumEntries;
78 MIB_IF_ROW2 Table[1];
79 } MIB_IF_TABLE2, *PMIB_IF_TABLE2;
80
81 NETIOAPI_API GetIfEntry2(IN OUT PMIB_IF_ROW2 Row);
82 NETIOAPI_API GetIfTable2(OUT PMIB_IF_TABLE2 *Table);
83
84 #endif
85
86 #ifdef __cplusplus
87 }
88 #endif
89
90 #endif