don't use MIXERCONTROLA for unicode builds
[reactos.git] / reactos / w32api / include / iptypes.h
1 #ifndef _IPTYPES_H
2 #define _IPTYPES_H
3 #if __GNUC__ >=3
4 #pragma GCC system_header
5 #endif
6
7 #include <sys/types.h>
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
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
28 typedef struct {
29 char String[16];
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;
35 DWORD Context;
36 } IP_ADDR_STRING, *PIP_ADDR_STRING;
37 typedef struct _IP_ADAPTER_INFO {
38 struct _IP_ADAPTER_INFO* Next;
39 DWORD ComboIndex;
40 char AdapterName[MAX_ADAPTER_NAME_LENGTH+4];
41 char Description[MAX_ADAPTER_DESCRIPTION_LENGTH+4];
42 UINT AddressLength;
43 BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
44 DWORD Index;
45 UINT Type;
46 UINT DhcpEnabled;
47 PIP_ADDR_STRING CurrentIpAddress;
48 IP_ADDR_STRING IpAddressList;
49 IP_ADDR_STRING GatewayList;
50 IP_ADDR_STRING DhcpServer;
51 BOOL HaveWins;
52 IP_ADDR_STRING PrimaryWinsServer;
53 IP_ADDR_STRING SecondaryWinsServer;
54 time_t LeaseObtained;
55 time_t LeaseExpires;
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;
63 typedef struct {
64 ULONG Index;
65 ULONG MediaType;
66 UCHAR ConnectionType;
67 UCHAR AccessType;
68 GUID DeviceGuid;
69 GUID InterfaceGuid;
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;
76 UINT NodeType;
77 char ScopeId[MAX_SCOPE_ID_LEN+4];
78 UINT EnableRouting;
79 UINT EnableProxy;
80 UINT EnableDns;
81 } FIXED_INFO, *PFIXED_INFO;
82 #ifdef _WINSOCK2_H
83 typedef enum {
84 IpPrefixOriginOther = 0,
85 IpPrefixOriginManual,
86 IpPrefixOriginWellKnown,
87 IpPrefixOriginDhcp,
88 IpPrefixOriginRouterAdvertisement,
89 } IP_PREFIX_ORIGIN;
90 typedef enum {
91 IpSuffixOriginOther = 0,
92 IpSuffixOriginManual,
93 IpSuffixOriginWellKnown,
94 IpSuffixOriginDhcp,
95 IpSuffixOriginLinkLayerAddress,
96 IpSuffixOriginRandom,
97 } IP_SUFFIX_ORIGIN;
98 typedef enum {
99 IpDadStateInvalid = 0,
100 IpDadStateTentative,
101 IpDadStateDuplicate,
102 IpDadStateDeprecated,
103 IpDadStatePreferred,
104 } IP_DAD_STATE;
105 typedef enum {
106 IfOperStatusUp = 1,
107 IfOperStatusDown,
108 IfOperStatusTesting,
109 IfOperStatusUnknown,
110 IfOperStatusDormant,
111 IfOperStatusNotPresent,
112 IfOperStatusLowerLayerDown
113 } IF_OPER_STATUS;
114 typedef struct _IP_ADAPTER_UNICAST_ADDRESS {
115 union {
116 ULONGLONG Alignment;
117 struct {
118 ULONG Length;
119 DWORD Flags;
120 };
121 };
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;
127 ULONG ValidLifetime;
128 ULONG PreferredLifetime;
129 ULONG LeaseLifetime;
130 } IP_ADAPTER_UNICAST_ADDRESS, *PIP_ADAPTER_UNICAST_ADDRESS;
131 typedef struct _IP_ADAPTER_ANYCAST_ADDRESS {
132 union {
133 ULONGLONG Alignment;
134 struct {
135 ULONG Length;
136 DWORD Flags;
137 };
138 };
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 {
143 union {
144 ULONGLONG Alignment;
145 struct {
146 ULONG Length;
147 DWORD Flags;
148 };
149 };
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 {
154 union {
155 ULONGLONG Alignment;
156 struct {
157 ULONG Length;
158 DWORD Reserved;
159 };
160 };
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 {
165 union {
166 ULONGLONG Alignment;
167 struct {
168 ULONG Length;
169 DWORD Flags;
170 };
171 };
172 struct _IP_ADAPTER_PREFIX *Next;
173 SOCKET_ADDRESS Address;
174 ULONG PrefixLength;
175 } IP_ADAPTER_PREFIX, *PIP_ADAPTER_PREFIX;
176 typedef struct _IP_ADAPTER_ADDRESSES {
177 union {
178 ULONGLONG Alignment;
179 struct {
180 ULONG Length;
181 DWORD IfIndex;
182 };
183 };
184 struct _IP_ADAPTER_ADDRESSES *Next;
185 PCHAR AdapterName;
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;
190 PWCHAR DnsSuffix;
191 PWCHAR Description;
192 PWCHAR FriendlyName;
193 BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
194 DWORD PhysicalAddressLength;
195 DWORD Flags;
196 DWORD Mtu;
197 DWORD IfType;
198 IF_OPER_STATUS OperStatus;
199 DWORD Ipv6IfIndex;
200 DWORD ZoneIndices[16];
201 PIP_ADAPTER_PREFIX FirstPrefix;
202 } IP_ADAPTER_ADDRESSES, *PIP_ADAPTER_ADDRESSES;
203 #endif
204
205 #ifdef __cplusplus
206 }
207 #endif
208 #endif /* _IPTYPES_H */