1 | /**
|
---|
2 | * This file has no copyright assigned and is placed in the Public Domain.
|
---|
3 | * This file is part of the mingw-w64 runtime package.
|
---|
4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
---|
5 | */
|
---|
6 | #ifndef _INC_IFDEF
|
---|
7 | #define _INC_IFDEF
|
---|
8 |
|
---|
9 | #include <ipifcons.h>
|
---|
10 |
|
---|
11 | #ifdef __cplusplus
|
---|
12 | extern "C" {
|
---|
13 | #endif
|
---|
14 |
|
---|
15 | #define IF_MAX_STRING_SIZE 256
|
---|
16 | #define IF_MAX_PHYS_ADDRESS_LENGTH 32
|
---|
17 |
|
---|
18 | typedef UINT32 NET_IF_COMPARTMENT_ID, *PNET_IF_COMPARTMENT_ID;
|
---|
19 |
|
---|
20 | typedef ULONG NET_IFINDEX, *PNET_IFINDEX;
|
---|
21 | typedef UINT16 NET_IFTYPE, *PNET_IFTYPE;
|
---|
22 | typedef NET_IFINDEX IF_INDEX, *PIF_INDEX;
|
---|
23 |
|
---|
24 | typedef GUID NET_IF_NETWORK_GUID;
|
---|
25 |
|
---|
26 | typedef enum _IF_OPER_STATUS {
|
---|
27 | IfOperStatusUp = 1,
|
---|
28 | IfOperStatusDown,
|
---|
29 | IfOperStatusTesting,
|
---|
30 | IfOperStatusUnknown,
|
---|
31 | IfOperStatusDormant,
|
---|
32 | IfOperStatusNotPresent,
|
---|
33 | IfOperStatusLowerLayerDown
|
---|
34 | } IF_OPER_STATUS;
|
---|
35 |
|
---|
36 | typedef enum _NET_IF_OPER_STATUS {
|
---|
37 | NET_IF_OPER_STATUS_UP = 1,
|
---|
38 | NET_IF_OPER_STATUS_DOWN,
|
---|
39 | NET_IF_OPER_STATUS_TESTING,
|
---|
40 | NET_IF_OPER_STATUS_UNKNOWN,
|
---|
41 | NET_IF_OPER_STATUS_DORMANT,
|
---|
42 | NET_IF_OPER_STATUS_NOT_PRESENT,
|
---|
43 | NET_IF_OPER_STATUS_LOWER_LAYER_DOWN
|
---|
44 | } NET_IF_OPER_STATUS, *PNET_IF_OPER_STATUS;
|
---|
45 |
|
---|
46 | typedef enum _NET_IF_ADMIN_STATUS {
|
---|
47 | NET_IF_ADMIN_STATUS_UP = 1,
|
---|
48 | NET_IF_ADMIN_STATUS_DOWN,
|
---|
49 | NET_IF_ADMIN_STATUS_TESTING
|
---|
50 | } NET_IF_ADMIN_STATUS, *PNET_IF_ADMIN_STATUS;
|
---|
51 |
|
---|
52 | typedef enum _NET_IF_MEDIA_CONNECT_STATE {
|
---|
53 | MediaConnectStateUnknown,
|
---|
54 | MediaConnectStateConnected,
|
---|
55 | MediaConnectStateDisconnected
|
---|
56 | } NET_IF_MEDIA_CONNECT_STATE, *PNET_IF_MEDIA_CONNECT_STATE;
|
---|
57 |
|
---|
58 | typedef enum _NET_IF_ACCESS_TYPE {
|
---|
59 | NET_IF_ACCESS_LOOPBACK = 1,
|
---|
60 | NET_IF_ACCESS_BROADCAST,
|
---|
61 | NET_IF_ACCESS_POINT_TO_POINT,
|
---|
62 | NET_IF_ACCESS_POINT_TO_MULTI_POINT,
|
---|
63 | NET_IF_ACCESS_MAXIMUM
|
---|
64 | } NET_IF_ACCESS_TYPE, *PNET_IF_ACCESS_TYPE;
|
---|
65 |
|
---|
66 | typedef enum _NET_IF_CONNECTION_TYPE {
|
---|
67 | NET_IF_CONNECTION_DEDICATED = 1,
|
---|
68 | NET_IF_CONNECTION_PASSIVE,
|
---|
69 | NET_IF_CONNECTION_DEMAND,
|
---|
70 | NET_IF_CONNECTION_MAXIMUM
|
---|
71 | } NET_IF_CONNECTION_TYPE, *PNET_IF_CONNECTION_TYPE;
|
---|
72 |
|
---|
73 | typedef enum _NET_IF_DIRECTION_TYPE {
|
---|
74 | NET_IF_DIRECTION_SENDRECEIVE,
|
---|
75 | NET_IF_DIRECTION_SENDONLY,
|
---|
76 | NET_IF_DIRECTION_RECEIVEONLY,
|
---|
77 | NET_IF_DIRECTION_MAXIMUM
|
---|
78 | } NET_IF_DIRECTION_TYPE, *PNET_IF_DIRECTION_TYPE;
|
---|
79 |
|
---|
80 | typedef enum _NET_IF_MEDIA_DUPLEX_STATE {
|
---|
81 | MediaDuplexStateUnknown,
|
---|
82 | MediaDuplexStateHalf,
|
---|
83 | MediaDuplexStateFull
|
---|
84 | } NET_IF_MEDIA_DUPLEX_STATE, *PNET_IF_MEDIA_DUPLEX_STATE;
|
---|
85 |
|
---|
86 | typedef enum _TUNNEL_TYPE {
|
---|
87 | TUNNEL_TYPE_NONE = 0,
|
---|
88 | TUNNEL_TYPE_OTHER = 1,
|
---|
89 | TUNNEL_TYPE_DIRECT = 2,
|
---|
90 | TUNNEL_TYPE_6TO4 = 11,
|
---|
91 | TUNNEL_TYPE_ISATAP = 13,
|
---|
92 | TUNNEL_TYPE_TEREDO = 14,
|
---|
93 | TUNNEL_TYPE_IPHTTPS = 15
|
---|
94 | } TUNNEL_TYPE, *PTUNNEL_TYPE;
|
---|
95 |
|
---|
96 | typedef union _NET_LUID {
|
---|
97 | ULONG64 Value;
|
---|
98 | __C89_NAMELESS struct { /* bitfield with 64 bit types. */
|
---|
99 | ULONG64 Reserved :24;
|
---|
100 | ULONG64 NetLuidIndex :24;
|
---|
101 | ULONG64 IfType :16;
|
---|
102 | } Info;
|
---|
103 | } NET_LUID, *PNET_LUID;
|
---|
104 |
|
---|
105 | typedef NET_LUID IF_LUID, *PIF_LUID;
|
---|
106 |
|
---|
107 | typedef struct _IF_COUNTED_STRING_LH {
|
---|
108 | USHORT Length;
|
---|
109 | WCHAR String[IF_MAX_STRING_SIZE + 1];
|
---|
110 | } IF_COUNTED_STRING_LH, *PIF_COUNTED_STRING_LH;
|
---|
111 | typedef IF_COUNTED_STRING_LH IF_COUNTED_STRING;
|
---|
112 | typedef IF_COUNTED_STRING *PIF_COUNTED_STRING;
|
---|
113 |
|
---|
114 | typedef struct _IF_PHYSICAL_ADDRESS_LH {
|
---|
115 | USHORT Length;
|
---|
116 | UCHAR Address[IF_MAX_PHYS_ADDRESS_LENGTH];
|
---|
117 | } IF_PHYSICAL_ADDRESS_LH, *PIF_PHYSICAL_ADDRESS_LH;
|
---|
118 | typedef IF_PHYSICAL_ADDRESS_LH IF_PHYSICAL_ADDRESS;
|
---|
119 | typedef IF_PHYSICAL_ADDRESS *PIF_PHYSICAL_ADDRESS;
|
---|
120 |
|
---|
121 | #ifdef __cplusplus
|
---|
122 | }
|
---|
123 | #endif
|
---|
124 |
|
---|
125 | #endif /* _INC_IFDEF */
|
---|
126 |
|
---|