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 */