4 #pragma GCC system_header
11 #define DEFAULT_MINIMUM_ENTITIES 32
12 #define MAX_ADAPTER_ADDRESS_LENGTH 8
13 #define MAX_ADAPTER_DESCRIPTION_LENGTH 128
14 #define MAX_ADAPTER_NAME_LENGTH 256
15 #define MAX_DOMAIN_NAME_LEN 128
16 #define MAX_HOSTNAME_LEN 128
17 #define MAX_SCOPE_ID_LEN 256
18 #define BROADCAST_NODETYPE 1
19 #define PEER_TO_PEER_NODETYPE 2
20 #define MIXED_NODETYPE 4
21 #define HYBRID_NODETYPE 8
22 #define IF_OTHER_ADAPTERTYPE 0
23 #define IF_ETHERNET_ADAPTERTYPE 1
24 #define IF_TOKEN_RING_ADAPTERTYPE 2
25 #define IF_FDDI_ADAPTERTYPE 3
26 #define IF_PPP_ADAPTERTYPE 4
27 #define IF_LOOPBACK_ADAPTERTYPE 5
30 } IP_ADDRESS_STRING
, *PIP_ADDRESS_STRING
, IP_MASK_STRING
, *PIP_MASK_STRING
;
31 typedef struct _IP_ADDR_STRING
{
32 struct _IP_ADDR_STRING
* Next
;
33 IP_ADDRESS_STRING IpAddress
;
34 IP_MASK_STRING IpMask
;
36 } IP_ADDR_STRING
, *PIP_ADDR_STRING
;
37 typedef struct _IP_ADAPTER_INFO
{
38 struct _IP_ADAPTER_INFO
* Next
;
40 char AdapterName
[MAX_ADAPTER_NAME_LENGTH
+4];
41 char Description
[MAX_ADAPTER_DESCRIPTION_LENGTH
+4];
43 BYTE Address
[MAX_ADAPTER_ADDRESS_LENGTH
];
47 PIP_ADDR_STRING CurrentIpAddress
;
48 IP_ADDR_STRING IpAddressList
;
49 IP_ADDR_STRING GatewayList
;
50 IP_ADDR_STRING DhcpServer
;
52 IP_ADDR_STRING PrimaryWinsServer
;
53 IP_ADDR_STRING SecondaryWinsServer
;
56 } IP_ADAPTER_INFO
, *PIP_ADAPTER_INFO
;
57 typedef struct _IP_PER_ADAPTER_INFO
{
58 UINT AutoconfigEnabled
;
59 UINT AutoconfigActive
;
60 PIP_ADDR_STRING CurrentDnsServer
;
61 IP_ADDR_STRING DnsServerList
;
62 } IP_PER_ADAPTER_INFO
, *PIP_PER_ADAPTER_INFO
;
70 } IP_INTERFACE_NAME_INFO
, *PIP_INTERFACE_NAME_INFO
;
71 typedef struct _FIXED_INFO
{
72 char HostName
[MAX_HOSTNAME_LEN
+4] ;
73 char DomainName
[MAX_DOMAIN_NAME_LEN
+4];
74 PIP_ADDR_STRING CurrentDnsServer
;
75 IP_ADDR_STRING DnsServerList
;
77 char ScopeId
[MAX_SCOPE_ID_LEN
+4];
81 } FIXED_INFO
, *PFIXED_INFO
;
84 IpPrefixOriginOther
= 0,
86 IpPrefixOriginWellKnown
,
88 IpPrefixOriginRouterAdvertisement
,
91 IpSuffixOriginOther
= 0,
93 IpSuffixOriginWellKnown
,
95 IpSuffixOriginLinkLayerAddress
,
99 IpDadStateInvalid
= 0,
102 IpDadStateDeprecated
,
111 IfOperStatusNotPresent
,
112 IfOperStatusLowerLayerDown
114 typedef struct _IP_ADAPTER_UNICAST_ADDRESS
{
122 struct _IP_ADAPTER_UNICAST_ADDRESS
*Next
;
123 SOCKET_ADDRESS Address
;
124 IP_PREFIX_ORIGIN PrefixOrigin
;
125 IP_SUFFIX_ORIGIN SuffixOrigin
;
126 IP_DAD_STATE DadState
;
128 ULONG PreferredLifetime
;
130 } IP_ADAPTER_UNICAST_ADDRESS
, *PIP_ADAPTER_UNICAST_ADDRESS
;
131 typedef struct _IP_ADAPTER_ANYCAST_ADDRESS
{
139 struct _IP_ADAPTER_ANYCAST_ADDRESS
*Next
;
140 SOCKET_ADDRESS Address
;
141 } IP_ADAPTER_ANYCAST_ADDRESS
, *PIP_ADAPTER_ANYCAST_ADDRESS
;
142 typedef struct _IP_ADAPTER_MULTICAST_ADDRESS
{
150 struct _IP_ADAPTER_MULTICAST_ADDRESS
*Next
;
151 SOCKET_ADDRESS Address
;
152 } IP_ADAPTER_MULTICAST_ADDRESS
, *PIP_ADAPTER_MULTICAST_ADDRESS
;
153 typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS
{
161 struct _IP_ADAPTER_DNS_SERVER_ADDRESS
*Next
;
162 SOCKET_ADDRESS Address
;
163 } IP_ADAPTER_DNS_SERVER_ADDRESS
, *PIP_ADAPTER_DNS_SERVER_ADDRESS
;
164 typedef struct _IP_ADAPTER_PREFIX
{
172 struct _IP_ADAPTER_PREFIX
*Next
;
173 SOCKET_ADDRESS Address
;
175 } IP_ADAPTER_PREFIX
, *PIP_ADAPTER_PREFIX
;
176 typedef struct _IP_ADAPTER_ADDRESSES
{
184 struct _IP_ADAPTER_ADDRESSES
*Next
;
186 PIP_ADAPTER_UNICAST_ADDRESS FirstUnicastAddress
;
187 PIP_ADAPTER_ANYCAST_ADDRESS FirstAnycastAddress
;
188 PIP_ADAPTER_MULTICAST_ADDRESS FirstMulticastAddress
;
189 PIP_ADAPTER_DNS_SERVER_ADDRESS FirstDnsServerAddress
;
193 BYTE PhysicalAddress
[MAX_ADAPTER_ADDRESS_LENGTH
];
194 DWORD PhysicalAddressLength
;
198 IF_OPER_STATUS OperStatus
;
200 DWORD ZoneIndices
[16];
201 PIP_ADAPTER_PREFIX FirstPrefix
;
202 } IP_ADAPTER_ADDRESSES
, *PIP_ADAPTER_ADDRESSES
;
208 #endif /* _IPTYPES_H */