Sync to trunk head (r42241)
[reactos.git] / reactos / include / psdk / iptypes.h
1 #ifndef _IPTYPES_H
2 #define _IPTYPES_H
3
4 #include <sys/types.h>
5 #include <ifdef.h>
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #define DEFAULT_MINIMUM_ENTITIES 32
11 #define MAX_ADAPTER_ADDRESS_LENGTH 8
12 #define MAX_ADAPTER_DESCRIPTION_LENGTH 128
13 #define MAX_ADAPTER_NAME_LENGTH 256
14 #define MAX_DOMAIN_NAME_LEN 128
15 #define MAX_HOSTNAME_LEN 128
16 #define MAX_SCOPE_ID_LEN 256
17 #define BROADCAST_NODETYPE 1
18 #define PEER_TO_PEER_NODETYPE 2
19 #define MIXED_NODETYPE 4
20 #define HYBRID_NODETYPE 8
21 #define IF_OTHER_ADAPTERTYPE 0
22 #define IF_ETHERNET_ADAPTERTYPE 1
23 #define IF_TOKEN_RING_ADAPTERTYPE 2
24 #define IF_FDDI_ADAPTERTYPE 3
25 #define IF_PPP_ADAPTERTYPE 4
26 #define IF_LOOPBACK_ADAPTERTYPE 5
27 typedef struct {
28 char String[16];
29 } IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
30 typedef struct _IP_ADDR_STRING {
31 struct _IP_ADDR_STRING* Next;
32 IP_ADDRESS_STRING IpAddress;
33 IP_MASK_STRING IpMask;
34 DWORD Context;
35 } IP_ADDR_STRING, *PIP_ADDR_STRING;
36 typedef struct _IP_ADAPTER_INFO {
37 struct _IP_ADAPTER_INFO* Next;
38 DWORD ComboIndex;
39 char AdapterName[MAX_ADAPTER_NAME_LENGTH+4];
40 char Description[MAX_ADAPTER_DESCRIPTION_LENGTH+4];
41 UINT AddressLength;
42 BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
43 DWORD Index;
44 UINT Type;
45 UINT DhcpEnabled;
46 PIP_ADDR_STRING CurrentIpAddress;
47 IP_ADDR_STRING IpAddressList;
48 IP_ADDR_STRING GatewayList;
49 IP_ADDR_STRING DhcpServer;
50 BOOL HaveWins;
51 IP_ADDR_STRING PrimaryWinsServer;
52 IP_ADDR_STRING SecondaryWinsServer;
53 time_t LeaseObtained;
54 time_t LeaseExpires;
55 } IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
56 typedef struct _IP_PER_ADAPTER_INFO {
57 UINT AutoconfigEnabled;
58 UINT AutoconfigActive;
59 PIP_ADDR_STRING CurrentDnsServer;
60 IP_ADDR_STRING DnsServerList;
61 } IP_PER_ADAPTER_INFO, *PIP_PER_ADAPTER_INFO;
62 typedef struct {
63 ULONG Index;
64 ULONG MediaType;
65 UCHAR ConnectionType;
66 UCHAR AccessType;
67 GUID DeviceGuid;
68 GUID InterfaceGuid;
69 } IP_INTERFACE_NAME_INFO, *PIP_INTERFACE_NAME_INFO;
70 typedef struct _FIXED_INFO {
71 char HostName[MAX_HOSTNAME_LEN+4] ;
72 char DomainName[MAX_DOMAIN_NAME_LEN+4];
73 PIP_ADDR_STRING CurrentDnsServer;
74 IP_ADDR_STRING DnsServerList;
75 UINT NodeType;
76 char ScopeId[MAX_SCOPE_ID_LEN+4];
77 UINT EnableRouting;
78 UINT EnableProxy;
79 UINT EnableDns;
80 } FIXED_INFO, *PFIXED_INFO;
81 #ifdef _WINSOCK2_H
82 typedef enum {
83 IpPrefixOriginOther = 0,
84 IpPrefixOriginManual,
85 IpPrefixOriginWellKnown,
86 IpPrefixOriginDhcp,
87 IpPrefixOriginRouterAdvertisement,
88 } IP_PREFIX_ORIGIN;
89 typedef enum {
90 IpSuffixOriginOther = 0,
91 IpSuffixOriginManual,
92 IpSuffixOriginWellKnown,
93 IpSuffixOriginDhcp,
94 IpSuffixOriginLinkLayerAddress,
95 IpSuffixOriginRandom,
96 } IP_SUFFIX_ORIGIN;
97 typedef enum {
98 IpDadStateInvalid = 0,
99 IpDadStateTentative,
100 IpDadStateDuplicate,
101 IpDadStateDeprecated,
102 IpDadStatePreferred,
103 } IP_DAD_STATE;
104 typedef enum {
105 IfOperStatusUp = 1,
106 IfOperStatusDown,
107 IfOperStatusTesting,
108 IfOperStatusUnknown,
109 IfOperStatusDormant,
110 IfOperStatusNotPresent,
111 IfOperStatusLowerLayerDown
112 } IF_OPER_STATUS;
113 typedef struct _IP_ADAPTER_UNICAST_ADDRESS {
114 union {
115 ULONGLONG Alignment;
116 struct {
117 ULONG Length;
118 DWORD Flags;
119 };
120 };
121 struct _IP_ADAPTER_UNICAST_ADDRESS *Next;
122 SOCKET_ADDRESS Address;
123 IP_PREFIX_ORIGIN PrefixOrigin;
124 IP_SUFFIX_ORIGIN SuffixOrigin;
125 IP_DAD_STATE DadState;
126 ULONG ValidLifetime;
127 ULONG PreferredLifetime;
128 ULONG LeaseLifetime;
129 } IP_ADAPTER_UNICAST_ADDRESS, *PIP_ADAPTER_UNICAST_ADDRESS;
130 typedef struct _IP_ADAPTER_ANYCAST_ADDRESS {
131 union {
132 ULONGLONG Alignment;
133 struct {
134 ULONG Length;
135 DWORD Flags;
136 };
137 };
138 struct _IP_ADAPTER_ANYCAST_ADDRESS *Next;
139 SOCKET_ADDRESS Address;
140 } IP_ADAPTER_ANYCAST_ADDRESS, *PIP_ADAPTER_ANYCAST_ADDRESS;
141 typedef struct _IP_ADAPTER_MULTICAST_ADDRESS {
142 union {
143 ULONGLONG Alignment;
144 struct {
145 ULONG Length;
146 DWORD Flags;
147 };
148 };
149 struct _IP_ADAPTER_MULTICAST_ADDRESS *Next;
150 SOCKET_ADDRESS Address;
151 } IP_ADAPTER_MULTICAST_ADDRESS, *PIP_ADAPTER_MULTICAST_ADDRESS;
152 typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS {
153 union {
154 ULONGLONG Alignment;
155 struct {
156 ULONG Length;
157 DWORD Reserved;
158 };
159 };
160 struct _IP_ADAPTER_DNS_SERVER_ADDRESS *Next;
161 SOCKET_ADDRESS Address;
162 } IP_ADAPTER_DNS_SERVER_ADDRESS, *PIP_ADAPTER_DNS_SERVER_ADDRESS;
163 typedef struct _IP_ADAPTER_PREFIX {
164 union {
165 ULONGLONG Alignment;
166 struct {
167 ULONG Length;
168 DWORD Flags;
169 };
170 };
171 struct _IP_ADAPTER_PREFIX *Next;
172 SOCKET_ADDRESS Address;
173 ULONG PrefixLength;
174 } IP_ADAPTER_PREFIX, *PIP_ADAPTER_PREFIX;
175 typedef struct _IP_ADAPTER_ADDRESSES {
176 union {
177 ULONGLONG Alignment;
178 struct {
179 ULONG Length;
180 DWORD IfIndex;
181 };
182 };
183 struct _IP_ADAPTER_ADDRESSES *Next;
184 PCHAR AdapterName;
185 PIP_ADAPTER_UNICAST_ADDRESS FirstUnicastAddress;
186 PIP_ADAPTER_ANYCAST_ADDRESS FirstAnycastAddress;
187 PIP_ADAPTER_MULTICAST_ADDRESS FirstMulticastAddress;
188 PIP_ADAPTER_DNS_SERVER_ADDRESS FirstDnsServerAddress;
189 PWCHAR DnsSuffix;
190 PWCHAR Description;
191 PWCHAR FriendlyName;
192 BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
193 DWORD PhysicalAddressLength;
194 DWORD Flags;
195 DWORD Mtu;
196 DWORD IfType;
197 IF_OPER_STATUS OperStatus;
198 DWORD Ipv6IfIndex;
199 DWORD ZoneIndices[16];
200 PIP_ADAPTER_PREFIX FirstPrefix;
201 } IP_ADAPTER_ADDRESSES, *PIP_ADAPTER_ADDRESSES;
202 #endif
203
204 #ifdef __cplusplus
205 }
206 #endif
207 #endif /* _IPTYPES_H */