4 #pragma GCC system_header
12 #define DEFAULT_MINIMUM_ENTITIES 32
13 #define MAX_ADAPTER_ADDRESS_LENGTH 8
14 #define MAX_ADAPTER_DESCRIPTION_LENGTH 128
15 #define MAX_ADAPTER_NAME_LENGTH 256
16 #define MAX_DOMAIN_NAME_LEN 128
17 #define MAX_HOSTNAME_LEN 128
18 #define MAX_SCOPE_ID_LEN 256
19 #define BROADCAST_NODETYPE 1
20 #define PEER_TO_PEER_NODETYPE 2
21 #define MIXED_NODETYPE 4
22 #define HYBRID_NODETYPE 8
23 #define IF_OTHER_ADAPTERTYPE 0
24 #define IF_ETHERNET_ADAPTERTYPE 1
25 #define IF_TOKEN_RING_ADAPTERTYPE 2
26 #define IF_FDDI_ADAPTERTYPE 3
27 #define IF_PPP_ADAPTERTYPE 4
28 #define IF_LOOPBACK_ADAPTERTYPE 5
29 #if (_WIN32_WINNT >= 0x0501)
30 #define IP_ADAPTER_DDNS_ENABLED 0x00000001
31 #define IP_ADAPTER_REGISTER_ADAPTER_SUFFIX 0x00000002
32 #define IP_ADAPTER_DHCP_ENABLED 0x00000004
33 #define IP_ADAPTER_RECEIVE_ONLY 0x00000008
34 #define IP_ADAPTER_NO_MULTICAST 0x00000010
35 #define IP_ADAPTER_IPV6_OTHER_STATEFUL_CONFIG 0x00000020
36 #define IP_ADAPTER_ADDRESS_DNS_ELIGIBLE 0x00000001
37 #define IP_ADAPTER_ADDRESS_TRANSIENT 0x00000002
42 } IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
43 typedef struct _IP_ADDR_STRING {
44 struct _IP_ADDR_STRING* Next;
45 IP_ADDRESS_STRING IpAddress;
46 IP_MASK_STRING IpMask;
48 } IP_ADDR_STRING, *PIP_ADDR_STRING;
49 typedef struct _IP_ADAPTER_INFO {
50 struct _IP_ADAPTER_INFO* Next;
52 char AdapterName[MAX_ADAPTER_NAME_LENGTH+4];
53 char Description[MAX_ADAPTER_DESCRIPTION_LENGTH+4];
55 BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
59 PIP_ADDR_STRING CurrentIpAddress;
60 IP_ADDR_STRING IpAddressList;
61 IP_ADDR_STRING GatewayList;
62 IP_ADDR_STRING DhcpServer;
64 IP_ADDR_STRING PrimaryWinsServer;
65 IP_ADDR_STRING SecondaryWinsServer;
68 } IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
69 typedef struct _IP_PER_ADAPTER_INFO {
70 UINT AutoconfigEnabled;
71 UINT AutoconfigActive;
72 PIP_ADDR_STRING CurrentDnsServer;
73 IP_ADDR_STRING DnsServerList;
74 } IP_PER_ADAPTER_INFO, *PIP_PER_ADAPTER_INFO;
75 typedef struct _FIXED_INFO {
76 char HostName[MAX_HOSTNAME_LEN+4] ;
77 char DomainName[MAX_DOMAIN_NAME_LEN+4];
78 PIP_ADDR_STRING CurrentDnsServer;
79 IP_ADDR_STRING DnsServerList;
81 char ScopeId[MAX_SCOPE_ID_LEN+4];
85 } FIXED_INFO, *PFIXED_INFO;
86 #if (_WIN32_WINNT >= 0x0501) && defined(_WINSOCK2_H)
93 IfOperStatusNotPresent,
94 IfOperStatusLowerLayerDown
97 IpDadStateInvalid = 0,
100 IpDadStateDeprecated,
104 IpPrefixOriginOther = 0,
105 IpPrefixOriginManual,
106 IpPrefixOriginWellKnown,
108 IpPrefixOriginRouterAdvertisement
111 IpSuffixOriginOther = 0,
112 IpSuffixOriginManual,
113 IpSuffixOriginWellKnown,
115 IpSuffixOriginLinkLayerAddress,
119 ScopeLevelInterface = 1,
121 ScopeLevelSubnet = 3,
124 ScopeLevelOrganization = 8,
125 ScopeLevelGlobal = 14
130 UCHAR ConnectionType;
134 } IP_INTERFACE_NAME_INFO,*PIP_INTERFACE_NAME_INFO;
135 typedef struct _IP_ADAPTER_ANYCAST_ADDRESS {
136 _ANONYMOUS_UNION union {
138 _ANONYMOUS_STRUCT struct {
143 struct _IP_ADAPTER_ANYCAST_ADDRESS* Next;
144 SOCKET_ADDRESS Address;
145 } IP_ADAPTER_ANYCAST_ADDRESS,*PIP_ADAPTER_ANYCAST_ADDRESS;
146 typedef struct _IP_ADAPTER_MULTICAST_ADDRESS {
147 _ANONYMOUS_UNION union {
149 _ANONYMOUS_STRUCT struct {
154 struct _IP_ADAPTER_MULTICAST_ADDRESS* Next;
155 SOCKET_ADDRESS Address;
156 } IP_ADAPTER_MULTICAST_ADDRESS,*PIP_ADAPTER_MULTICAST_ADDRESS;
157 typedef struct _IP_ADAPTER_UNICAST_ADDRESS {
158 _ANONYMOUS_UNION union {
160 _ANONYMOUS_STRUCT struct {
165 struct _IP_ADAPTER_UNICAST_ADDRESS* Next;
166 SOCKET_ADDRESS Address;
167 IP_PREFIX_ORIGIN PrefixOrigin;
168 IP_SUFFIX_ORIGIN SuffixOrigin;
169 IP_DAD_STATE DadState;
171 ULONG PreferredLifetime;
173 } IP_ADAPTER_UNICAST_ADDRESS,*PIP_ADAPTER_UNICAST_ADDRESS;
174 typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS {
175 _ANONYMOUS_UNION union {
177 _ANONYMOUS_STRUCT struct {
182 struct _IP_ADAPTER_DNS_SERVER_ADDRESS* Next;
183 SOCKET_ADDRESS Address;
184 } IP_ADAPTER_DNS_SERVER_ADDRESS,*PIP_ADAPTER_DNS_SERVER_ADDRESS;
185 typedef struct _IP_ADAPTER_PREFIX {
186 _ANONYMOUS_UNION union {
188 _ANONYMOUS_STRUCT struct {
193 struct _IP_ADAPTER_PREFIX* Next;
194 SOCKET_ADDRESS Address;
196 } IP_ADAPTER_PREFIX,*PIP_ADAPTER_PREFIX;
197 typedef struct _IP_ADAPTER_ADDRESSES {
198 _ANONYMOUS_UNION union {
200 _ANONYMOUS_STRUCT struct {
205 struct _IP_ADAPTER_ADDRESSES* Next;
207 PIP_ADAPTER_UNICAST_ADDRESS FirstUnicastAddress;
208 PIP_ADAPTER_ANYCAST_ADDRESS FirstAnycastAddress;
209 PIP_ADAPTER_MULTICAST_ADDRESS FirstMulticastAddress;
210 PIP_ADAPTER_DNS_SERVER_ADDRESS FirstDnsServerAddress;
214 BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
215 DWORD PhysicalAddressLength;
219 IF_OPER_STATUS OperStatus;
221 DWORD ZoneIndices[16];
222 PIP_ADAPTER_PREFIX FirstPrefix;
223 } IP_ADAPTER_ADDRESSES,*PIP_ADAPTER_ADDRESSES;
229 #endif /* _IPTYPES_H */