1 /*
2 automatically generated by rust-bindgen with:
3 bindgen.exe --whitelist-function=GetAdaptersAddresses wrapper.h -- --target=i686-pc-windows-msvc
4 */
5
6 pub type wchar_t = ::std::os::raw::c_ushort;
7 pub type ULONG = ::std::os::raw::c_ulong;
8 pub type PULONG = *mut ULONG;
9 pub type USHORT = ::std::os::raw::c_ushort;
10 pub type DWORD = ::std::os::raw::c_ulong;
11 pub type BYTE = ::std::os::raw::c_uchar;
12 pub type INT = ::std::os::raw::c_int;
13 pub type UINT8 = ::std::os::raw::c_uchar;
14 pub type UINT32 = ::std::os::raw::c_uint;
15 pub type ULONG64 = ::std::os::raw::c_ulonglong;
16 pub type PVOID = *mut ::std::os::raw::c_void;
17 pub type CHAR = ::std::os::raw::c_char;
18 pub type WCHAR = wchar_t;
19 pub type PWCHAR = *mut WCHAR;
20 pub type PCHAR = *mut CHAR;
21 pub type ULONGLONG = ::std::os::raw::c_ulonglong;
22 #[repr(C)]
23 #[derive(Debug, Copy)]
24 pub struct _GUID {
25 pub Data1: ::std::os::raw::c_ulong,
26 pub Data2: ::std::os::raw::c_ushort,
27 pub Data3: ::std::os::raw::c_ushort,
28 pub Data4: [::std::os::raw::c_uchar; 8usize],
29 }
30 #[test]
bindgen_test_layout__GUID()31 fn bindgen_test_layout__GUID() {
32 assert_eq!(
33 ::std::mem::size_of::<_GUID>(),
34 16usize,
35 concat!("Size of: ", stringify!(_GUID))
36 );
37 assert_eq!(
38 ::std::mem::align_of::<_GUID>(),
39 4usize,
40 concat!("Alignment of ", stringify!(_GUID))
41 );
42 assert_eq!(
43 unsafe { &(*(0 as *const _GUID)).Data1 as *const _ as usize },
44 0usize,
45 concat!(
46 "Alignment of field: ",
47 stringify!(_GUID),
48 "::",
49 stringify!(Data1)
50 )
51 );
52 assert_eq!(
53 unsafe { &(*(0 as *const _GUID)).Data2 as *const _ as usize },
54 4usize,
55 concat!(
56 "Alignment of field: ",
57 stringify!(_GUID),
58 "::",
59 stringify!(Data2)
60 )
61 );
62 assert_eq!(
63 unsafe { &(*(0 as *const _GUID)).Data3 as *const _ as usize },
64 6usize,
65 concat!(
66 "Alignment of field: ",
67 stringify!(_GUID),
68 "::",
69 stringify!(Data3)
70 )
71 );
72 assert_eq!(
73 unsafe { &(*(0 as *const _GUID)).Data4 as *const _ as usize },
74 8usize,
75 concat!(
76 "Alignment of field: ",
77 stringify!(_GUID),
78 "::",
79 stringify!(Data4)
80 )
81 );
82 }
83 impl Clone for _GUID {
clone(&self) -> Self84 fn clone(&self) -> Self {
85 *self
86 }
87 }
88 pub type GUID = _GUID;
89 pub type ADDRESS_FAMILY = USHORT;
90 #[repr(C)]
91 #[derive(Debug, Copy)]
92 pub struct sockaddr {
93 pub sa_family: ADDRESS_FAMILY,
94 pub sa_data: [CHAR; 14usize],
95 }
96 #[test]
bindgen_test_layout_sockaddr()97 fn bindgen_test_layout_sockaddr() {
98 assert_eq!(
99 ::std::mem::size_of::<sockaddr>(),
100 16usize,
101 concat!("Size of: ", stringify!(sockaddr))
102 );
103 assert_eq!(
104 ::std::mem::align_of::<sockaddr>(),
105 2usize,
106 concat!("Alignment of ", stringify!(sockaddr))
107 );
108 assert_eq!(
109 unsafe { &(*(0 as *const sockaddr)).sa_family as *const _ as usize },
110 0usize,
111 concat!(
112 "Alignment of field: ",
113 stringify!(sockaddr),
114 "::",
115 stringify!(sa_family)
116 )
117 );
118 assert_eq!(
119 unsafe { &(*(0 as *const sockaddr)).sa_data as *const _ as usize },
120 2usize,
121 concat!(
122 "Alignment of field: ",
123 stringify!(sockaddr),
124 "::",
125 stringify!(sa_data)
126 )
127 );
128 }
129 impl Clone for sockaddr {
clone(&self) -> Self130 fn clone(&self) -> Self {
131 *self
132 }
133 }
134 pub type LPSOCKADDR = *mut sockaddr;
135 #[repr(C)]
136 #[derive(Debug, Copy)]
137 pub struct _SOCKET_ADDRESS {
138 pub lpSockaddr: LPSOCKADDR,
139 pub iSockaddrLength: INT,
140 }
141 #[test]
bindgen_test_layout__SOCKET_ADDRESS()142 fn bindgen_test_layout__SOCKET_ADDRESS() {
143 assert_eq!(
144 ::std::mem::size_of::<_SOCKET_ADDRESS>(),
145 8usize,
146 concat!("Size of: ", stringify!(_SOCKET_ADDRESS))
147 );
148 assert_eq!(
149 ::std::mem::align_of::<_SOCKET_ADDRESS>(),
150 4usize,
151 concat!("Alignment of ", stringify!(_SOCKET_ADDRESS))
152 );
153 assert_eq!(
154 unsafe { &(*(0 as *const _SOCKET_ADDRESS)).lpSockaddr as *const _ as usize },
155 0usize,
156 concat!(
157 "Alignment of field: ",
158 stringify!(_SOCKET_ADDRESS),
159 "::",
160 stringify!(lpSockaddr)
161 )
162 );
163 assert_eq!(
164 unsafe { &(*(0 as *const _SOCKET_ADDRESS)).iSockaddrLength as *const _ as usize },
165 4usize,
166 concat!(
167 "Alignment of field: ",
168 stringify!(_SOCKET_ADDRESS),
169 "::",
170 stringify!(iSockaddrLength)
171 )
172 );
173 }
174 impl Clone for _SOCKET_ADDRESS {
clone(&self) -> Self175 fn clone(&self) -> Self {
176 *self
177 }
178 }
179 pub type SOCKET_ADDRESS = _SOCKET_ADDRESS;
180 pub type IFTYPE = ULONG;
181 pub type NET_IF_COMPARTMENT_ID = UINT32;
182 pub type NET_IF_NETWORK_GUID = GUID;
183 #[repr(C)]
184 #[derive(Copy)]
185 pub union _NET_LUID_LH {
186 pub Value: ULONG64,
187 pub Info: _NET_LUID_LH__bindgen_ty_1,
188 _bindgen_union_align: u64,
189 }
190 #[repr(C)]
191 #[derive(Debug, Copy)]
192 pub struct _NET_LUID_LH__bindgen_ty_1 {
193 pub _bitfield_1: [u32; 2usize],
194 pub __bindgen_align: [u64; 0usize],
195 }
196 #[test]
bindgen_test_layout__NET_LUID_LH__bindgen_ty_1()197 fn bindgen_test_layout__NET_LUID_LH__bindgen_ty_1() {
198 assert_eq!(
199 ::std::mem::size_of::<_NET_LUID_LH__bindgen_ty_1>(),
200 8usize,
201 concat!("Size of: ", stringify!(_NET_LUID_LH__bindgen_ty_1))
202 );
203 assert_eq!(
204 ::std::mem::align_of::<_NET_LUID_LH__bindgen_ty_1>(),
205 8usize,
206 concat!("Alignment of ", stringify!(_NET_LUID_LH__bindgen_ty_1))
207 );
208 }
209 impl Clone for _NET_LUID_LH__bindgen_ty_1 {
clone(&self) -> Self210 fn clone(&self) -> Self {
211 *self
212 }
213 }
214 impl _NET_LUID_LH__bindgen_ty_1 {
215 #[inline]
Reserved(&self) -> ULONG64216 pub fn Reserved(&self) -> ULONG64 {
217 let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
218 unsafe {
219 ::std::ptr::copy_nonoverlapping(
220 &self._bitfield_1 as *const _ as *const u8,
221 &mut unit_field_val as *mut u64 as *mut u8,
222 ::std::mem::size_of::<u64>(),
223 )
224 };
225 let mask = 0xffffff as u64;
226 let val = (unit_field_val & mask) >> 0usize;
227 unsafe { ::std::mem::transmute(val as u64) }
228 }
229 #[inline]
set_Reserved(&mut self, val: ULONG64)230 pub fn set_Reserved(&mut self, val: ULONG64) {
231 let mask = 0xffffff as u64;
232 let val = val as u64 as u64;
233 let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
234 unsafe {
235 ::std::ptr::copy_nonoverlapping(
236 &self._bitfield_1 as *const _ as *const u8,
237 &mut unit_field_val as *mut u64 as *mut u8,
238 ::std::mem::size_of::<u64>(),
239 )
240 };
241 unit_field_val &= !mask;
242 unit_field_val |= (val << 0usize) & mask;
243 unsafe {
244 ::std::ptr::copy_nonoverlapping(
245 &unit_field_val as *const _ as *const u8,
246 &mut self._bitfield_1 as *mut _ as *mut u8,
247 ::std::mem::size_of::<u64>(),
248 );
249 }
250 }
251 #[inline]
NetLuidIndex(&self) -> ULONG64252 pub fn NetLuidIndex(&self) -> ULONG64 {
253 let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
254 unsafe {
255 ::std::ptr::copy_nonoverlapping(
256 &self._bitfield_1 as *const _ as *const u8,
257 &mut unit_field_val as *mut u64 as *mut u8,
258 ::std::mem::size_of::<u64>(),
259 )
260 };
261 let mask = 0xffffff000000 as u64;
262 let val = (unit_field_val & mask) >> 24usize;
263 unsafe { ::std::mem::transmute(val as u64) }
264 }
265 #[inline]
set_NetLuidIndex(&mut self, val: ULONG64)266 pub fn set_NetLuidIndex(&mut self, val: ULONG64) {
267 let mask = 0xffffff000000 as u64;
268 let val = val as u64 as u64;
269 let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
270 unsafe {
271 ::std::ptr::copy_nonoverlapping(
272 &self._bitfield_1 as *const _ as *const u8,
273 &mut unit_field_val as *mut u64 as *mut u8,
274 ::std::mem::size_of::<u64>(),
275 )
276 };
277 unit_field_val &= !mask;
278 unit_field_val |= (val << 24usize) & mask;
279 unsafe {
280 ::std::ptr::copy_nonoverlapping(
281 &unit_field_val as *const _ as *const u8,
282 &mut self._bitfield_1 as *mut _ as *mut u8,
283 ::std::mem::size_of::<u64>(),
284 );
285 }
286 }
287 #[inline]
IfType(&self) -> ULONG64288 pub fn IfType(&self) -> ULONG64 {
289 let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
290 unsafe {
291 ::std::ptr::copy_nonoverlapping(
292 &self._bitfield_1 as *const _ as *const u8,
293 &mut unit_field_val as *mut u64 as *mut u8,
294 ::std::mem::size_of::<u64>(),
295 )
296 };
297 let mask = 0xffff000000000000 as u64;
298 let val = (unit_field_val & mask) >> 48usize;
299 unsafe { ::std::mem::transmute(val as u64) }
300 }
301 #[inline]
set_IfType(&mut self, val: ULONG64)302 pub fn set_IfType(&mut self, val: ULONG64) {
303 let mask = 0xffff000000000000 as u64;
304 let val = val as u64 as u64;
305 let mut unit_field_val: u64 = unsafe { ::std::mem::uninitialized() };
306 unsafe {
307 ::std::ptr::copy_nonoverlapping(
308 &self._bitfield_1 as *const _ as *const u8,
309 &mut unit_field_val as *mut u64 as *mut u8,
310 ::std::mem::size_of::<u64>(),
311 )
312 };
313 unit_field_val &= !mask;
314 unit_field_val |= (val << 48usize) & mask;
315 unsafe {
316 ::std::ptr::copy_nonoverlapping(
317 &unit_field_val as *const _ as *const u8,
318 &mut self._bitfield_1 as *mut _ as *mut u8,
319 ::std::mem::size_of::<u64>(),
320 );
321 }
322 }
323 #[inline]
new_bitfield_1(Reserved: ULONG64, NetLuidIndex: ULONG64, IfType: ULONG64) -> u64324 pub fn new_bitfield_1(Reserved: ULONG64, NetLuidIndex: ULONG64, IfType: ULONG64) -> u64 {
325 (((0 | ((Reserved as u64 as u64) << 0usize) & (0xffffff as u64))
326 | ((NetLuidIndex as u64 as u64) << 24usize) & (0xffffff000000 as u64))
327 | ((IfType as u64 as u64) << 48usize) & (0xffff000000000000 as u64))
328 }
329 }
330 #[test]
bindgen_test_layout__NET_LUID_LH()331 fn bindgen_test_layout__NET_LUID_LH() {
332 assert_eq!(
333 ::std::mem::size_of::<_NET_LUID_LH>(),
334 8usize,
335 concat!("Size of: ", stringify!(_NET_LUID_LH))
336 );
337 assert_eq!(
338 ::std::mem::align_of::<_NET_LUID_LH>(),
339 8usize,
340 concat!("Alignment of ", stringify!(_NET_LUID_LH))
341 );
342 assert_eq!(
343 unsafe { &(*(0 as *const _NET_LUID_LH)).Value as *const _ as usize },
344 0usize,
345 concat!(
346 "Alignment of field: ",
347 stringify!(_NET_LUID_LH),
348 "::",
349 stringify!(Value)
350 )
351 );
352 assert_eq!(
353 unsafe { &(*(0 as *const _NET_LUID_LH)).Info as *const _ as usize },
354 0usize,
355 concat!(
356 "Alignment of field: ",
357 stringify!(_NET_LUID_LH),
358 "::",
359 stringify!(Info)
360 )
361 );
362 }
363 impl Clone for _NET_LUID_LH {
clone(&self) -> Self364 fn clone(&self) -> Self {
365 *self
366 }
367 }
368 pub type NET_LUID_LH = _NET_LUID_LH;
369 pub type NET_LUID = NET_LUID_LH;
370 pub type IF_LUID = NET_LUID;
371 pub type NET_IFINDEX = ULONG;
372 pub type IF_INDEX = NET_IFINDEX;
373 pub const _NET_IF_CONNECTION_TYPE_NET_IF_CONNECTION_DEDICATED: _NET_IF_CONNECTION_TYPE = 1;
374 pub const _NET_IF_CONNECTION_TYPE_NET_IF_CONNECTION_PASSIVE: _NET_IF_CONNECTION_TYPE = 2;
375 pub const _NET_IF_CONNECTION_TYPE_NET_IF_CONNECTION_DEMAND: _NET_IF_CONNECTION_TYPE = 3;
376 pub const _NET_IF_CONNECTION_TYPE_NET_IF_CONNECTION_MAXIMUM: _NET_IF_CONNECTION_TYPE = 4;
377 pub type _NET_IF_CONNECTION_TYPE = ::std::os::raw::c_int;
378 pub use self::_NET_IF_CONNECTION_TYPE as NET_IF_CONNECTION_TYPE;
379 pub const TUNNEL_TYPE_TUNNEL_TYPE_NONE: TUNNEL_TYPE = 0;
380 pub const TUNNEL_TYPE_TUNNEL_TYPE_OTHER: TUNNEL_TYPE = 1;
381 pub const TUNNEL_TYPE_TUNNEL_TYPE_DIRECT: TUNNEL_TYPE = 2;
382 pub const TUNNEL_TYPE_TUNNEL_TYPE_6TO4: TUNNEL_TYPE = 11;
383 pub const TUNNEL_TYPE_TUNNEL_TYPE_ISATAP: TUNNEL_TYPE = 13;
384 pub const TUNNEL_TYPE_TUNNEL_TYPE_TEREDO: TUNNEL_TYPE = 14;
385 pub const TUNNEL_TYPE_TUNNEL_TYPE_IPHTTPS: TUNNEL_TYPE = 15;
386 pub type TUNNEL_TYPE = ::std::os::raw::c_int;
387 pub const IF_OPER_STATUS_IfOperStatusUp: IF_OPER_STATUS = 1;
388 pub const IF_OPER_STATUS_IfOperStatusDown: IF_OPER_STATUS = 2;
389 pub const IF_OPER_STATUS_IfOperStatusTesting: IF_OPER_STATUS = 3;
390 pub const IF_OPER_STATUS_IfOperStatusUnknown: IF_OPER_STATUS = 4;
391 pub const IF_OPER_STATUS_IfOperStatusDormant: IF_OPER_STATUS = 5;
392 pub const IF_OPER_STATUS_IfOperStatusNotPresent: IF_OPER_STATUS = 6;
393 pub const IF_OPER_STATUS_IfOperStatusLowerLayerDown: IF_OPER_STATUS = 7;
394 pub type IF_OPER_STATUS = ::std::os::raw::c_int;
395 pub const NL_PREFIX_ORIGIN_IpPrefixOriginOther: NL_PREFIX_ORIGIN = 0;
396 pub const NL_PREFIX_ORIGIN_IpPrefixOriginManual: NL_PREFIX_ORIGIN = 1;
397 pub const NL_PREFIX_ORIGIN_IpPrefixOriginWellKnown: NL_PREFIX_ORIGIN = 2;
398 pub const NL_PREFIX_ORIGIN_IpPrefixOriginDhcp: NL_PREFIX_ORIGIN = 3;
399 pub const NL_PREFIX_ORIGIN_IpPrefixOriginRouterAdvertisement: NL_PREFIX_ORIGIN = 4;
400 pub const NL_PREFIX_ORIGIN_IpPrefixOriginUnchanged: NL_PREFIX_ORIGIN = 16;
401 pub type NL_PREFIX_ORIGIN = ::std::os::raw::c_int;
402 pub const NL_SUFFIX_ORIGIN_NlsoOther: NL_SUFFIX_ORIGIN = 0;
403 pub const NL_SUFFIX_ORIGIN_NlsoManual: NL_SUFFIX_ORIGIN = 1;
404 pub const NL_SUFFIX_ORIGIN_NlsoWellKnown: NL_SUFFIX_ORIGIN = 2;
405 pub const NL_SUFFIX_ORIGIN_NlsoDhcp: NL_SUFFIX_ORIGIN = 3;
406 pub const NL_SUFFIX_ORIGIN_NlsoLinkLayerAddress: NL_SUFFIX_ORIGIN = 4;
407 pub const NL_SUFFIX_ORIGIN_NlsoRandom: NL_SUFFIX_ORIGIN = 5;
408 pub const NL_SUFFIX_ORIGIN_IpSuffixOriginOther: NL_SUFFIX_ORIGIN = 0;
409 pub const NL_SUFFIX_ORIGIN_IpSuffixOriginManual: NL_SUFFIX_ORIGIN = 1;
410 pub const NL_SUFFIX_ORIGIN_IpSuffixOriginWellKnown: NL_SUFFIX_ORIGIN = 2;
411 pub const NL_SUFFIX_ORIGIN_IpSuffixOriginDhcp: NL_SUFFIX_ORIGIN = 3;
412 pub const NL_SUFFIX_ORIGIN_IpSuffixOriginLinkLayerAddress: NL_SUFFIX_ORIGIN = 4;
413 pub const NL_SUFFIX_ORIGIN_IpSuffixOriginRandom: NL_SUFFIX_ORIGIN = 5;
414 pub const NL_SUFFIX_ORIGIN_IpSuffixOriginUnchanged: NL_SUFFIX_ORIGIN = 16;
415 pub type NL_SUFFIX_ORIGIN = ::std::os::raw::c_int;
416 pub const NL_DAD_STATE_NldsInvalid: NL_DAD_STATE = 0;
417 pub const NL_DAD_STATE_NldsTentative: NL_DAD_STATE = 1;
418 pub const NL_DAD_STATE_NldsDuplicate: NL_DAD_STATE = 2;
419 pub const NL_DAD_STATE_NldsDeprecated: NL_DAD_STATE = 3;
420 pub const NL_DAD_STATE_NldsPreferred: NL_DAD_STATE = 4;
421 pub const NL_DAD_STATE_IpDadStateInvalid: NL_DAD_STATE = 0;
422 pub const NL_DAD_STATE_IpDadStateTentative: NL_DAD_STATE = 1;
423 pub const NL_DAD_STATE_IpDadStateDuplicate: NL_DAD_STATE = 2;
424 pub const NL_DAD_STATE_IpDadStateDeprecated: NL_DAD_STATE = 3;
425 pub const NL_DAD_STATE_IpDadStatePreferred: NL_DAD_STATE = 4;
426 pub type NL_DAD_STATE = ::std::os::raw::c_int;
427 pub use self::NL_DAD_STATE as IP_DAD_STATE;
428 pub use self::NL_PREFIX_ORIGIN as IP_PREFIX_ORIGIN;
429 pub use self::NL_SUFFIX_ORIGIN as IP_SUFFIX_ORIGIN;
430 #[repr(C)]
431 #[derive(Copy)]
432 pub struct _IP_ADAPTER_UNICAST_ADDRESS_LH {
433 pub __bindgen_anon_1: _IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1,
434 pub Next: *mut _IP_ADAPTER_UNICAST_ADDRESS_LH,
435 pub Address: SOCKET_ADDRESS,
436 pub PrefixOrigin: IP_PREFIX_ORIGIN,
437 pub SuffixOrigin: IP_SUFFIX_ORIGIN,
438 pub DadState: IP_DAD_STATE,
439 pub ValidLifetime: ULONG,
440 pub PreferredLifetime: ULONG,
441 pub LeaseLifetime: ULONG,
442 pub OnLinkPrefixLength: UINT8,
443 }
444 #[repr(C)]
445 #[derive(Copy)]
446 pub union _IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1 {
447 pub Alignment: ULONGLONG,
448 pub __bindgen_anon_1: _IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1,
449 _bindgen_union_align: u64,
450 }
451 #[repr(C)]
452 #[derive(Debug, Copy)]
453 pub struct _IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1 {
454 pub Length: ULONG,
455 pub Flags: DWORD,
456 }
457 #[test]
bindgen_test_layout__IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1()458 fn bindgen_test_layout__IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1() {
459 assert_eq!(
460 ::std::mem::size_of::<_IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1>(),
461 8usize,
462 concat!(
463 "Size of: ",
464 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1)
465 )
466 );
467 assert_eq!(
468 ::std::mem::align_of::<_IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1>(),
469 4usize,
470 concat!(
471 "Alignment of ",
472 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1)
473 )
474 );
475 assert_eq!(
476 unsafe {
477 &(*(0 as *const _IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1)).Length
478 as *const _ as usize
479 },
480 0usize,
481 concat!(
482 "Alignment of field: ",
483 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1),
484 "::",
485 stringify!(Length)
486 )
487 );
488 assert_eq!(
489 unsafe {
490 &(*(0 as *const _IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1)).Flags
491 as *const _ as usize
492 },
493 4usize,
494 concat!(
495 "Alignment of field: ",
496 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1),
497 "::",
498 stringify!(Flags)
499 )
500 );
501 }
502 impl Clone for _IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1 {
clone(&self) -> Self503 fn clone(&self) -> Self {
504 *self
505 }
506 }
507 #[test]
bindgen_test_layout__IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1()508 fn bindgen_test_layout__IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1() {
509 assert_eq!(
510 ::std::mem::size_of::<_IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1>(),
511 8usize,
512 concat!(
513 "Size of: ",
514 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1)
515 )
516 );
517 assert_eq!(
518 ::std::mem::align_of::<_IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1>(),
519 8usize,
520 concat!(
521 "Alignment of ",
522 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1)
523 )
524 );
525 assert_eq!(
526 unsafe {
527 &(*(0 as *const _IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1)).Alignment as *const _
528 as usize
529 },
530 0usize,
531 concat!(
532 "Alignment of field: ",
533 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1),
534 "::",
535 stringify!(Alignment)
536 )
537 );
538 }
539 impl Clone for _IP_ADAPTER_UNICAST_ADDRESS_LH__bindgen_ty_1 {
clone(&self) -> Self540 fn clone(&self) -> Self {
541 *self
542 }
543 }
544 #[test]
bindgen_test_layout__IP_ADAPTER_UNICAST_ADDRESS_LH()545 fn bindgen_test_layout__IP_ADAPTER_UNICAST_ADDRESS_LH() {
546 assert_eq!(
547 ::std::mem::size_of::<_IP_ADAPTER_UNICAST_ADDRESS_LH>(),
548 48usize,
549 concat!("Size of: ", stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH))
550 );
551 assert_eq!(
552 ::std::mem::align_of::<_IP_ADAPTER_UNICAST_ADDRESS_LH>(),
553 8usize,
554 concat!("Alignment of ", stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH))
555 );
556 assert_eq!(
557 unsafe { &(*(0 as *const _IP_ADAPTER_UNICAST_ADDRESS_LH)).Next as *const _ as usize },
558 8usize,
559 concat!(
560 "Alignment of field: ",
561 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH),
562 "::",
563 stringify!(Next)
564 )
565 );
566 assert_eq!(
567 unsafe { &(*(0 as *const _IP_ADAPTER_UNICAST_ADDRESS_LH)).Address as *const _ as usize },
568 12usize,
569 concat!(
570 "Alignment of field: ",
571 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH),
572 "::",
573 stringify!(Address)
574 )
575 );
576 assert_eq!(
577 unsafe {
578 &(*(0 as *const _IP_ADAPTER_UNICAST_ADDRESS_LH)).PrefixOrigin as *const _ as usize
579 },
580 20usize,
581 concat!(
582 "Alignment of field: ",
583 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH),
584 "::",
585 stringify!(PrefixOrigin)
586 )
587 );
588 assert_eq!(
589 unsafe {
590 &(*(0 as *const _IP_ADAPTER_UNICAST_ADDRESS_LH)).SuffixOrigin as *const _ as usize
591 },
592 24usize,
593 concat!(
594 "Alignment of field: ",
595 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH),
596 "::",
597 stringify!(SuffixOrigin)
598 )
599 );
600 assert_eq!(
601 unsafe { &(*(0 as *const _IP_ADAPTER_UNICAST_ADDRESS_LH)).DadState as *const _ as usize },
602 28usize,
603 concat!(
604 "Alignment of field: ",
605 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH),
606 "::",
607 stringify!(DadState)
608 )
609 );
610 assert_eq!(
611 unsafe {
612 &(*(0 as *const _IP_ADAPTER_UNICAST_ADDRESS_LH)).ValidLifetime as *const _ as usize
613 },
614 32usize,
615 concat!(
616 "Alignment of field: ",
617 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH),
618 "::",
619 stringify!(ValidLifetime)
620 )
621 );
622 assert_eq!(
623 unsafe {
624 &(*(0 as *const _IP_ADAPTER_UNICAST_ADDRESS_LH)).PreferredLifetime as *const _ as usize
625 },
626 36usize,
627 concat!(
628 "Alignment of field: ",
629 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH),
630 "::",
631 stringify!(PreferredLifetime)
632 )
633 );
634 assert_eq!(
635 unsafe {
636 &(*(0 as *const _IP_ADAPTER_UNICAST_ADDRESS_LH)).LeaseLifetime as *const _ as usize
637 },
638 40usize,
639 concat!(
640 "Alignment of field: ",
641 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH),
642 "::",
643 stringify!(LeaseLifetime)
644 )
645 );
646 assert_eq!(
647 unsafe {
648 &(*(0 as *const _IP_ADAPTER_UNICAST_ADDRESS_LH)).OnLinkPrefixLength as *const _ as usize
649 },
650 44usize,
651 concat!(
652 "Alignment of field: ",
653 stringify!(_IP_ADAPTER_UNICAST_ADDRESS_LH),
654 "::",
655 stringify!(OnLinkPrefixLength)
656 )
657 );
658 }
659 impl Clone for _IP_ADAPTER_UNICAST_ADDRESS_LH {
clone(&self) -> Self660 fn clone(&self) -> Self {
661 *self
662 }
663 }
664 pub type PIP_ADAPTER_UNICAST_ADDRESS_LH = *mut _IP_ADAPTER_UNICAST_ADDRESS_LH;
665 #[repr(C)]
666 #[derive(Copy)]
667 pub struct _IP_ADAPTER_ANYCAST_ADDRESS_XP {
668 pub __bindgen_anon_1: _IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1,
669 pub Next: *mut _IP_ADAPTER_ANYCAST_ADDRESS_XP,
670 pub Address: SOCKET_ADDRESS,
671 }
672 #[repr(C)]
673 #[derive(Copy)]
674 pub union _IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1 {
675 pub Alignment: ULONGLONG,
676 pub __bindgen_anon_1: _IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1,
677 _bindgen_union_align: u64,
678 }
679 #[repr(C)]
680 #[derive(Debug, Copy)]
681 pub struct _IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1 {
682 pub Length: ULONG,
683 pub Flags: DWORD,
684 }
685 #[test]
bindgen_test_layout__IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1()686 fn bindgen_test_layout__IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1() {
687 assert_eq!(
688 ::std::mem::size_of::<_IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1>(),
689 8usize,
690 concat!(
691 "Size of: ",
692 stringify!(_IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1)
693 )
694 );
695 assert_eq!(
696 ::std::mem::align_of::<_IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1>(),
697 4usize,
698 concat!(
699 "Alignment of ",
700 stringify!(_IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1)
701 )
702 );
703 assert_eq!(
704 unsafe {
705 &(*(0 as *const _IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1)).Length
706 as *const _ as usize
707 },
708 0usize,
709 concat!(
710 "Alignment of field: ",
711 stringify!(_IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1),
712 "::",
713 stringify!(Length)
714 )
715 );
716 assert_eq!(
717 unsafe {
718 &(*(0 as *const _IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1)).Flags
719 as *const _ as usize
720 },
721 4usize,
722 concat!(
723 "Alignment of field: ",
724 stringify!(_IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1),
725 "::",
726 stringify!(Flags)
727 )
728 );
729 }
730 impl Clone for _IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1 {
clone(&self) -> Self731 fn clone(&self) -> Self {
732 *self
733 }
734 }
735 #[test]
bindgen_test_layout__IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1()736 fn bindgen_test_layout__IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1() {
737 assert_eq!(
738 ::std::mem::size_of::<_IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1>(),
739 8usize,
740 concat!(
741 "Size of: ",
742 stringify!(_IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1)
743 )
744 );
745 assert_eq!(
746 ::std::mem::align_of::<_IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1>(),
747 8usize,
748 concat!(
749 "Alignment of ",
750 stringify!(_IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1)
751 )
752 );
753 assert_eq!(
754 unsafe {
755 &(*(0 as *const _IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1)).Alignment as *const _
756 as usize
757 },
758 0usize,
759 concat!(
760 "Alignment of field: ",
761 stringify!(_IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1),
762 "::",
763 stringify!(Alignment)
764 )
765 );
766 }
767 impl Clone for _IP_ADAPTER_ANYCAST_ADDRESS_XP__bindgen_ty_1 {
clone(&self) -> Self768 fn clone(&self) -> Self {
769 *self
770 }
771 }
772 #[test]
bindgen_test_layout__IP_ADAPTER_ANYCAST_ADDRESS_XP()773 fn bindgen_test_layout__IP_ADAPTER_ANYCAST_ADDRESS_XP() {
774 assert_eq!(
775 ::std::mem::size_of::<_IP_ADAPTER_ANYCAST_ADDRESS_XP>(),
776 24usize,
777 concat!("Size of: ", stringify!(_IP_ADAPTER_ANYCAST_ADDRESS_XP))
778 );
779 assert_eq!(
780 ::std::mem::align_of::<_IP_ADAPTER_ANYCAST_ADDRESS_XP>(),
781 8usize,
782 concat!("Alignment of ", stringify!(_IP_ADAPTER_ANYCAST_ADDRESS_XP))
783 );
784 assert_eq!(
785 unsafe { &(*(0 as *const _IP_ADAPTER_ANYCAST_ADDRESS_XP)).Next as *const _ as usize },
786 8usize,
787 concat!(
788 "Alignment of field: ",
789 stringify!(_IP_ADAPTER_ANYCAST_ADDRESS_XP),
790 "::",
791 stringify!(Next)
792 )
793 );
794 assert_eq!(
795 unsafe { &(*(0 as *const _IP_ADAPTER_ANYCAST_ADDRESS_XP)).Address as *const _ as usize },
796 12usize,
797 concat!(
798 "Alignment of field: ",
799 stringify!(_IP_ADAPTER_ANYCAST_ADDRESS_XP),
800 "::",
801 stringify!(Address)
802 )
803 );
804 }
805 impl Clone for _IP_ADAPTER_ANYCAST_ADDRESS_XP {
clone(&self) -> Self806 fn clone(&self) -> Self {
807 *self
808 }
809 }
810 pub type PIP_ADAPTER_ANYCAST_ADDRESS_XP = *mut _IP_ADAPTER_ANYCAST_ADDRESS_XP;
811 #[repr(C)]
812 #[derive(Copy)]
813 pub struct _IP_ADAPTER_MULTICAST_ADDRESS_XP {
814 pub __bindgen_anon_1: _IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1,
815 pub Next: *mut _IP_ADAPTER_MULTICAST_ADDRESS_XP,
816 pub Address: SOCKET_ADDRESS,
817 }
818 #[repr(C)]
819 #[derive(Copy)]
820 pub union _IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1 {
821 pub Alignment: ULONGLONG,
822 pub __bindgen_anon_1: _IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1,
823 _bindgen_union_align: u64,
824 }
825 #[repr(C)]
826 #[derive(Debug, Copy)]
827 pub struct _IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1 {
828 pub Length: ULONG,
829 pub Flags: DWORD,
830 }
831 #[test]
bindgen_test_layout__IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1()832 fn bindgen_test_layout__IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1() {
833 assert_eq!(
834 ::std::mem::size_of::<_IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1>(),
835 8usize,
836 concat!(
837 "Size of: ",
838 stringify!(_IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1)
839 )
840 );
841 assert_eq!(
842 ::std::mem::align_of::<_IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1>(),
843 4usize,
844 concat!(
845 "Alignment of ",
846 stringify!(_IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1)
847 )
848 );
849 assert_eq!(
850 unsafe {
851 &(*(0 as *const _IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1)).Length
852 as *const _ as usize
853 },
854 0usize,
855 concat!(
856 "Alignment of field: ",
857 stringify!(_IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1),
858 "::",
859 stringify!(Length)
860 )
861 );
862 assert_eq!(
863 unsafe {
864 &(*(0 as *const _IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1)).Flags
865 as *const _ as usize
866 },
867 4usize,
868 concat!(
869 "Alignment of field: ",
870 stringify!(_IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1),
871 "::",
872 stringify!(Flags)
873 )
874 );
875 }
876 impl Clone for _IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1 {
clone(&self) -> Self877 fn clone(&self) -> Self {
878 *self
879 }
880 }
881 #[test]
bindgen_test_layout__IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1()882 fn bindgen_test_layout__IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1() {
883 assert_eq!(
884 ::std::mem::size_of::<_IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1>(),
885 8usize,
886 concat!(
887 "Size of: ",
888 stringify!(_IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1)
889 )
890 );
891 assert_eq!(
892 ::std::mem::align_of::<_IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1>(),
893 8usize,
894 concat!(
895 "Alignment of ",
896 stringify!(_IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1)
897 )
898 );
899 assert_eq!(
900 unsafe {
901 &(*(0 as *const _IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1)).Alignment as *const _
902 as usize
903 },
904 0usize,
905 concat!(
906 "Alignment of field: ",
907 stringify!(_IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1),
908 "::",
909 stringify!(Alignment)
910 )
911 );
912 }
913 impl Clone for _IP_ADAPTER_MULTICAST_ADDRESS_XP__bindgen_ty_1 {
clone(&self) -> Self914 fn clone(&self) -> Self {
915 *self
916 }
917 }
918 #[test]
bindgen_test_layout__IP_ADAPTER_MULTICAST_ADDRESS_XP()919 fn bindgen_test_layout__IP_ADAPTER_MULTICAST_ADDRESS_XP() {
920 assert_eq!(
921 ::std::mem::size_of::<_IP_ADAPTER_MULTICAST_ADDRESS_XP>(),
922 24usize,
923 concat!("Size of: ", stringify!(_IP_ADAPTER_MULTICAST_ADDRESS_XP))
924 );
925 assert_eq!(
926 ::std::mem::align_of::<_IP_ADAPTER_MULTICAST_ADDRESS_XP>(),
927 8usize,
928 concat!(
929 "Alignment of ",
930 stringify!(_IP_ADAPTER_MULTICAST_ADDRESS_XP)
931 )
932 );
933 assert_eq!(
934 unsafe { &(*(0 as *const _IP_ADAPTER_MULTICAST_ADDRESS_XP)).Next as *const _ as usize },
935 8usize,
936 concat!(
937 "Alignment of field: ",
938 stringify!(_IP_ADAPTER_MULTICAST_ADDRESS_XP),
939 "::",
940 stringify!(Next)
941 )
942 );
943 assert_eq!(
944 unsafe { &(*(0 as *const _IP_ADAPTER_MULTICAST_ADDRESS_XP)).Address as *const _ as usize },
945 12usize,
946 concat!(
947 "Alignment of field: ",
948 stringify!(_IP_ADAPTER_MULTICAST_ADDRESS_XP),
949 "::",
950 stringify!(Address)
951 )
952 );
953 }
954 impl Clone for _IP_ADAPTER_MULTICAST_ADDRESS_XP {
clone(&self) -> Self955 fn clone(&self) -> Self {
956 *self
957 }
958 }
959 pub type PIP_ADAPTER_MULTICAST_ADDRESS_XP = *mut _IP_ADAPTER_MULTICAST_ADDRESS_XP;
960 #[repr(C)]
961 #[derive(Copy)]
962 pub struct _IP_ADAPTER_DNS_SERVER_ADDRESS_XP {
963 pub __bindgen_anon_1: _IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1,
964 pub Next: *mut _IP_ADAPTER_DNS_SERVER_ADDRESS_XP,
965 pub Address: SOCKET_ADDRESS,
966 }
967 #[repr(C)]
968 #[derive(Copy)]
969 pub union _IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1 {
970 pub Alignment: ULONGLONG,
971 pub __bindgen_anon_1: _IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1,
972 _bindgen_union_align: u64,
973 }
974 #[repr(C)]
975 #[derive(Debug, Copy)]
976 pub struct _IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1 {
977 pub Length: ULONG,
978 pub Reserved: DWORD,
979 }
980 #[test]
bindgen_test_layout__IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1()981 fn bindgen_test_layout__IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1() {
982 assert_eq!(
983 ::std::mem::size_of::<_IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1>(),
984 8usize,
985 concat!(
986 "Size of: ",
987 stringify!(_IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1)
988 )
989 );
990 assert_eq!(
991 ::std::mem::align_of::<_IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1>(),
992 4usize,
993 concat!(
994 "Alignment of ",
995 stringify!(_IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1)
996 )
997 );
998 assert_eq!(
999 unsafe {
1000 &(*(0 as *const _IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1)).Length
1001 as *const _ as usize
1002 },
1003 0usize,
1004 concat!(
1005 "Alignment of field: ",
1006 stringify!(_IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1),
1007 "::",
1008 stringify!(Length)
1009 )
1010 );
1011 assert_eq!(
1012 unsafe {
1013 &(*(0 as *const _IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1)).Reserved
1014 as *const _ as usize
1015 },
1016 4usize,
1017 concat!(
1018 "Alignment of field: ",
1019 stringify!(_IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1),
1020 "::",
1021 stringify!(Reserved)
1022 )
1023 );
1024 }
1025 impl Clone for _IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1__bindgen_ty_1 {
clone(&self) -> Self1026 fn clone(&self) -> Self {
1027 *self
1028 }
1029 }
1030 #[test]
bindgen_test_layout__IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1()1031 fn bindgen_test_layout__IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1() {
1032 assert_eq!(
1033 ::std::mem::size_of::<_IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1>(),
1034 8usize,
1035 concat!(
1036 "Size of: ",
1037 stringify!(_IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1)
1038 )
1039 );
1040 assert_eq!(
1041 ::std::mem::align_of::<_IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1>(),
1042 8usize,
1043 concat!(
1044 "Alignment of ",
1045 stringify!(_IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1)
1046 )
1047 );
1048 assert_eq!(
1049 unsafe {
1050 &(*(0 as *const _IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1)).Alignment as *const _
1051 as usize
1052 },
1053 0usize,
1054 concat!(
1055 "Alignment of field: ",
1056 stringify!(_IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1),
1057 "::",
1058 stringify!(Alignment)
1059 )
1060 );
1061 }
1062 impl Clone for _IP_ADAPTER_DNS_SERVER_ADDRESS_XP__bindgen_ty_1 {
clone(&self) -> Self1063 fn clone(&self) -> Self {
1064 *self
1065 }
1066 }
1067 #[test]
bindgen_test_layout__IP_ADAPTER_DNS_SERVER_ADDRESS_XP()1068 fn bindgen_test_layout__IP_ADAPTER_DNS_SERVER_ADDRESS_XP() {
1069 assert_eq!(
1070 ::std::mem::size_of::<_IP_ADAPTER_DNS_SERVER_ADDRESS_XP>(),
1071 24usize,
1072 concat!("Size of: ", stringify!(_IP_ADAPTER_DNS_SERVER_ADDRESS_XP))
1073 );
1074 assert_eq!(
1075 ::std::mem::align_of::<_IP_ADAPTER_DNS_SERVER_ADDRESS_XP>(),
1076 8usize,
1077 concat!(
1078 "Alignment of ",
1079 stringify!(_IP_ADAPTER_DNS_SERVER_ADDRESS_XP)
1080 )
1081 );
1082 assert_eq!(
1083 unsafe { &(*(0 as *const _IP_ADAPTER_DNS_SERVER_ADDRESS_XP)).Next as *const _ as usize },
1084 8usize,
1085 concat!(
1086 "Alignment of field: ",
1087 stringify!(_IP_ADAPTER_DNS_SERVER_ADDRESS_XP),
1088 "::",
1089 stringify!(Next)
1090 )
1091 );
1092 assert_eq!(
1093 unsafe { &(*(0 as *const _IP_ADAPTER_DNS_SERVER_ADDRESS_XP)).Address as *const _ as usize },
1094 12usize,
1095 concat!(
1096 "Alignment of field: ",
1097 stringify!(_IP_ADAPTER_DNS_SERVER_ADDRESS_XP),
1098 "::",
1099 stringify!(Address)
1100 )
1101 );
1102 }
1103 impl Clone for _IP_ADAPTER_DNS_SERVER_ADDRESS_XP {
clone(&self) -> Self1104 fn clone(&self) -> Self {
1105 *self
1106 }
1107 }
1108 pub type PIP_ADAPTER_DNS_SERVER_ADDRESS_XP = *mut _IP_ADAPTER_DNS_SERVER_ADDRESS_XP;
1109 #[repr(C)]
1110 #[derive(Copy)]
1111 pub struct _IP_ADAPTER_WINS_SERVER_ADDRESS_LH {
1112 pub __bindgen_anon_1: _IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1,
1113 pub Next: *mut _IP_ADAPTER_WINS_SERVER_ADDRESS_LH,
1114 pub Address: SOCKET_ADDRESS,
1115 }
1116 #[repr(C)]
1117 #[derive(Copy)]
1118 pub union _IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1 {
1119 pub Alignment: ULONGLONG,
1120 pub __bindgen_anon_1: _IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1,
1121 _bindgen_union_align: u64,
1122 }
1123 #[repr(C)]
1124 #[derive(Debug, Copy)]
1125 pub struct _IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1 {
1126 pub Length: ULONG,
1127 pub Reserved: DWORD,
1128 }
1129 #[test]
bindgen_test_layout__IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1()1130 fn bindgen_test_layout__IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1() {
1131 assert_eq!(
1132 ::std::mem::size_of::<_IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1>(),
1133 8usize,
1134 concat!(
1135 "Size of: ",
1136 stringify!(_IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1)
1137 )
1138 );
1139 assert_eq!(
1140 ::std::mem::align_of::<_IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1>(),
1141 4usize,
1142 concat!(
1143 "Alignment of ",
1144 stringify!(_IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1)
1145 )
1146 );
1147 assert_eq!(
1148 unsafe {
1149 &(*(0 as *const _IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1)).Length
1150 as *const _ as usize
1151 },
1152 0usize,
1153 concat!(
1154 "Alignment of field: ",
1155 stringify!(_IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1),
1156 "::",
1157 stringify!(Length)
1158 )
1159 );
1160 assert_eq!(
1161 unsafe {
1162 &(*(0 as *const _IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1))
1163 .Reserved as *const _ as usize
1164 },
1165 4usize,
1166 concat!(
1167 "Alignment of field: ",
1168 stringify!(_IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1),
1169 "::",
1170 stringify!(Reserved)
1171 )
1172 );
1173 }
1174 impl Clone for _IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1 {
clone(&self) -> Self1175 fn clone(&self) -> Self {
1176 *self
1177 }
1178 }
1179 #[test]
bindgen_test_layout__IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1()1180 fn bindgen_test_layout__IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1() {
1181 assert_eq!(
1182 ::std::mem::size_of::<_IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1>(),
1183 8usize,
1184 concat!(
1185 "Size of: ",
1186 stringify!(_IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1)
1187 )
1188 );
1189 assert_eq!(
1190 ::std::mem::align_of::<_IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1>(),
1191 8usize,
1192 concat!(
1193 "Alignment of ",
1194 stringify!(_IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1)
1195 )
1196 );
1197 assert_eq!(
1198 unsafe {
1199 &(*(0 as *const _IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1)).Alignment as *const _
1200 as usize
1201 },
1202 0usize,
1203 concat!(
1204 "Alignment of field: ",
1205 stringify!(_IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1),
1206 "::",
1207 stringify!(Alignment)
1208 )
1209 );
1210 }
1211 impl Clone for _IP_ADAPTER_WINS_SERVER_ADDRESS_LH__bindgen_ty_1 {
clone(&self) -> Self1212 fn clone(&self) -> Self {
1213 *self
1214 }
1215 }
1216 #[test]
bindgen_test_layout__IP_ADAPTER_WINS_SERVER_ADDRESS_LH()1217 fn bindgen_test_layout__IP_ADAPTER_WINS_SERVER_ADDRESS_LH() {
1218 assert_eq!(
1219 ::std::mem::size_of::<_IP_ADAPTER_WINS_SERVER_ADDRESS_LH>(),
1220 24usize,
1221 concat!("Size of: ", stringify!(_IP_ADAPTER_WINS_SERVER_ADDRESS_LH))
1222 );
1223 assert_eq!(
1224 ::std::mem::align_of::<_IP_ADAPTER_WINS_SERVER_ADDRESS_LH>(),
1225 8usize,
1226 concat!(
1227 "Alignment of ",
1228 stringify!(_IP_ADAPTER_WINS_SERVER_ADDRESS_LH)
1229 )
1230 );
1231 assert_eq!(
1232 unsafe { &(*(0 as *const _IP_ADAPTER_WINS_SERVER_ADDRESS_LH)).Next as *const _ as usize },
1233 8usize,
1234 concat!(
1235 "Alignment of field: ",
1236 stringify!(_IP_ADAPTER_WINS_SERVER_ADDRESS_LH),
1237 "::",
1238 stringify!(Next)
1239 )
1240 );
1241 assert_eq!(
1242 unsafe {
1243 &(*(0 as *const _IP_ADAPTER_WINS_SERVER_ADDRESS_LH)).Address as *const _ as usize
1244 },
1245 12usize,
1246 concat!(
1247 "Alignment of field: ",
1248 stringify!(_IP_ADAPTER_WINS_SERVER_ADDRESS_LH),
1249 "::",
1250 stringify!(Address)
1251 )
1252 );
1253 }
1254 impl Clone for _IP_ADAPTER_WINS_SERVER_ADDRESS_LH {
clone(&self) -> Self1255 fn clone(&self) -> Self {
1256 *self
1257 }
1258 }
1259 pub type PIP_ADAPTER_WINS_SERVER_ADDRESS_LH = *mut _IP_ADAPTER_WINS_SERVER_ADDRESS_LH;
1260 #[repr(C)]
1261 #[derive(Copy)]
1262 pub struct _IP_ADAPTER_GATEWAY_ADDRESS_LH {
1263 pub __bindgen_anon_1: _IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1,
1264 pub Next: *mut _IP_ADAPTER_GATEWAY_ADDRESS_LH,
1265 pub Address: SOCKET_ADDRESS,
1266 }
1267 #[repr(C)]
1268 #[derive(Copy)]
1269 pub union _IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1 {
1270 pub Alignment: ULONGLONG,
1271 pub __bindgen_anon_1: _IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1,
1272 _bindgen_union_align: u64,
1273 }
1274 #[repr(C)]
1275 #[derive(Debug, Copy)]
1276 pub struct _IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1 {
1277 pub Length: ULONG,
1278 pub Reserved: DWORD,
1279 }
1280 #[test]
bindgen_test_layout__IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1()1281 fn bindgen_test_layout__IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1() {
1282 assert_eq!(
1283 ::std::mem::size_of::<_IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1>(),
1284 8usize,
1285 concat!(
1286 "Size of: ",
1287 stringify!(_IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1)
1288 )
1289 );
1290 assert_eq!(
1291 ::std::mem::align_of::<_IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1>(),
1292 4usize,
1293 concat!(
1294 "Alignment of ",
1295 stringify!(_IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1)
1296 )
1297 );
1298 assert_eq!(
1299 unsafe {
1300 &(*(0 as *const _IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1)).Length
1301 as *const _ as usize
1302 },
1303 0usize,
1304 concat!(
1305 "Alignment of field: ",
1306 stringify!(_IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1),
1307 "::",
1308 stringify!(Length)
1309 )
1310 );
1311 assert_eq!(
1312 unsafe {
1313 &(*(0 as *const _IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1)).Reserved
1314 as *const _ as usize
1315 },
1316 4usize,
1317 concat!(
1318 "Alignment of field: ",
1319 stringify!(_IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1),
1320 "::",
1321 stringify!(Reserved)
1322 )
1323 );
1324 }
1325 impl Clone for _IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1__bindgen_ty_1 {
clone(&self) -> Self1326 fn clone(&self) -> Self {
1327 *self
1328 }
1329 }
1330 #[test]
bindgen_test_layout__IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1()1331 fn bindgen_test_layout__IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1() {
1332 assert_eq!(
1333 ::std::mem::size_of::<_IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1>(),
1334 8usize,
1335 concat!(
1336 "Size of: ",
1337 stringify!(_IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1)
1338 )
1339 );
1340 assert_eq!(
1341 ::std::mem::align_of::<_IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1>(),
1342 8usize,
1343 concat!(
1344 "Alignment of ",
1345 stringify!(_IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1)
1346 )
1347 );
1348 assert_eq!(
1349 unsafe {
1350 &(*(0 as *const _IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1)).Alignment as *const _
1351 as usize
1352 },
1353 0usize,
1354 concat!(
1355 "Alignment of field: ",
1356 stringify!(_IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1),
1357 "::",
1358 stringify!(Alignment)
1359 )
1360 );
1361 }
1362 impl Clone for _IP_ADAPTER_GATEWAY_ADDRESS_LH__bindgen_ty_1 {
clone(&self) -> Self1363 fn clone(&self) -> Self {
1364 *self
1365 }
1366 }
1367 #[test]
bindgen_test_layout__IP_ADAPTER_GATEWAY_ADDRESS_LH()1368 fn bindgen_test_layout__IP_ADAPTER_GATEWAY_ADDRESS_LH() {
1369 assert_eq!(
1370 ::std::mem::size_of::<_IP_ADAPTER_GATEWAY_ADDRESS_LH>(),
1371 24usize,
1372 concat!("Size of: ", stringify!(_IP_ADAPTER_GATEWAY_ADDRESS_LH))
1373 );
1374 assert_eq!(
1375 ::std::mem::align_of::<_IP_ADAPTER_GATEWAY_ADDRESS_LH>(),
1376 8usize,
1377 concat!("Alignment of ", stringify!(_IP_ADAPTER_GATEWAY_ADDRESS_LH))
1378 );
1379 assert_eq!(
1380 unsafe { &(*(0 as *const _IP_ADAPTER_GATEWAY_ADDRESS_LH)).Next as *const _ as usize },
1381 8usize,
1382 concat!(
1383 "Alignment of field: ",
1384 stringify!(_IP_ADAPTER_GATEWAY_ADDRESS_LH),
1385 "::",
1386 stringify!(Next)
1387 )
1388 );
1389 assert_eq!(
1390 unsafe { &(*(0 as *const _IP_ADAPTER_GATEWAY_ADDRESS_LH)).Address as *const _ as usize },
1391 12usize,
1392 concat!(
1393 "Alignment of field: ",
1394 stringify!(_IP_ADAPTER_GATEWAY_ADDRESS_LH),
1395 "::",
1396 stringify!(Address)
1397 )
1398 );
1399 }
1400 impl Clone for _IP_ADAPTER_GATEWAY_ADDRESS_LH {
clone(&self) -> Self1401 fn clone(&self) -> Self {
1402 *self
1403 }
1404 }
1405 pub type PIP_ADAPTER_GATEWAY_ADDRESS_LH = *mut _IP_ADAPTER_GATEWAY_ADDRESS_LH;
1406 #[repr(C)]
1407 #[derive(Copy)]
1408 pub struct _IP_ADAPTER_PREFIX_XP {
1409 pub __bindgen_anon_1: _IP_ADAPTER_PREFIX_XP__bindgen_ty_1,
1410 pub Next: *mut _IP_ADAPTER_PREFIX_XP,
1411 pub Address: SOCKET_ADDRESS,
1412 pub PrefixLength: ULONG,
1413 }
1414 #[repr(C)]
1415 #[derive(Copy)]
1416 pub union _IP_ADAPTER_PREFIX_XP__bindgen_ty_1 {
1417 pub Alignment: ULONGLONG,
1418 pub __bindgen_anon_1: _IP_ADAPTER_PREFIX_XP__bindgen_ty_1__bindgen_ty_1,
1419 _bindgen_union_align: u64,
1420 }
1421 #[repr(C)]
1422 #[derive(Debug, Copy)]
1423 pub struct _IP_ADAPTER_PREFIX_XP__bindgen_ty_1__bindgen_ty_1 {
1424 pub Length: ULONG,
1425 pub Flags: DWORD,
1426 }
1427 #[test]
bindgen_test_layout__IP_ADAPTER_PREFIX_XP__bindgen_ty_1__bindgen_ty_1()1428 fn bindgen_test_layout__IP_ADAPTER_PREFIX_XP__bindgen_ty_1__bindgen_ty_1() {
1429 assert_eq!(
1430 ::std::mem::size_of::<_IP_ADAPTER_PREFIX_XP__bindgen_ty_1__bindgen_ty_1>(),
1431 8usize,
1432 concat!(
1433 "Size of: ",
1434 stringify!(_IP_ADAPTER_PREFIX_XP__bindgen_ty_1__bindgen_ty_1)
1435 )
1436 );
1437 assert_eq!(
1438 ::std::mem::align_of::<_IP_ADAPTER_PREFIX_XP__bindgen_ty_1__bindgen_ty_1>(),
1439 4usize,
1440 concat!(
1441 "Alignment of ",
1442 stringify!(_IP_ADAPTER_PREFIX_XP__bindgen_ty_1__bindgen_ty_1)
1443 )
1444 );
1445 assert_eq!(
1446 unsafe {
1447 &(*(0 as *const _IP_ADAPTER_PREFIX_XP__bindgen_ty_1__bindgen_ty_1)).Length as *const _
1448 as usize
1449 },
1450 0usize,
1451 concat!(
1452 "Alignment of field: ",
1453 stringify!(_IP_ADAPTER_PREFIX_XP__bindgen_ty_1__bindgen_ty_1),
1454 "::",
1455 stringify!(Length)
1456 )
1457 );
1458 assert_eq!(
1459 unsafe {
1460 &(*(0 as *const _IP_ADAPTER_PREFIX_XP__bindgen_ty_1__bindgen_ty_1)).Flags as *const _
1461 as usize
1462 },
1463 4usize,
1464 concat!(
1465 "Alignment of field: ",
1466 stringify!(_IP_ADAPTER_PREFIX_XP__bindgen_ty_1__bindgen_ty_1),
1467 "::",
1468 stringify!(Flags)
1469 )
1470 );
1471 }
1472 impl Clone for _IP_ADAPTER_PREFIX_XP__bindgen_ty_1__bindgen_ty_1 {
clone(&self) -> Self1473 fn clone(&self) -> Self {
1474 *self
1475 }
1476 }
1477 #[test]
bindgen_test_layout__IP_ADAPTER_PREFIX_XP__bindgen_ty_1()1478 fn bindgen_test_layout__IP_ADAPTER_PREFIX_XP__bindgen_ty_1() {
1479 assert_eq!(
1480 ::std::mem::size_of::<_IP_ADAPTER_PREFIX_XP__bindgen_ty_1>(),
1481 8usize,
1482 concat!("Size of: ", stringify!(_IP_ADAPTER_PREFIX_XP__bindgen_ty_1))
1483 );
1484 assert_eq!(
1485 ::std::mem::align_of::<_IP_ADAPTER_PREFIX_XP__bindgen_ty_1>(),
1486 8usize,
1487 concat!(
1488 "Alignment of ",
1489 stringify!(_IP_ADAPTER_PREFIX_XP__bindgen_ty_1)
1490 )
1491 );
1492 assert_eq!(
1493 unsafe {
1494 &(*(0 as *const _IP_ADAPTER_PREFIX_XP__bindgen_ty_1)).Alignment as *const _ as usize
1495 },
1496 0usize,
1497 concat!(
1498 "Alignment of field: ",
1499 stringify!(_IP_ADAPTER_PREFIX_XP__bindgen_ty_1),
1500 "::",
1501 stringify!(Alignment)
1502 )
1503 );
1504 }
1505 impl Clone for _IP_ADAPTER_PREFIX_XP__bindgen_ty_1 {
clone(&self) -> Self1506 fn clone(&self) -> Self {
1507 *self
1508 }
1509 }
1510 #[test]
bindgen_test_layout__IP_ADAPTER_PREFIX_XP()1511 fn bindgen_test_layout__IP_ADAPTER_PREFIX_XP() {
1512 assert_eq!(
1513 ::std::mem::size_of::<_IP_ADAPTER_PREFIX_XP>(),
1514 24usize,
1515 concat!("Size of: ", stringify!(_IP_ADAPTER_PREFIX_XP))
1516 );
1517 assert_eq!(
1518 ::std::mem::align_of::<_IP_ADAPTER_PREFIX_XP>(),
1519 8usize,
1520 concat!("Alignment of ", stringify!(_IP_ADAPTER_PREFIX_XP))
1521 );
1522 assert_eq!(
1523 unsafe { &(*(0 as *const _IP_ADAPTER_PREFIX_XP)).Next as *const _ as usize },
1524 8usize,
1525 concat!(
1526 "Alignment of field: ",
1527 stringify!(_IP_ADAPTER_PREFIX_XP),
1528 "::",
1529 stringify!(Next)
1530 )
1531 );
1532 assert_eq!(
1533 unsafe { &(*(0 as *const _IP_ADAPTER_PREFIX_XP)).Address as *const _ as usize },
1534 12usize,
1535 concat!(
1536 "Alignment of field: ",
1537 stringify!(_IP_ADAPTER_PREFIX_XP),
1538 "::",
1539 stringify!(Address)
1540 )
1541 );
1542 assert_eq!(
1543 unsafe { &(*(0 as *const _IP_ADAPTER_PREFIX_XP)).PrefixLength as *const _ as usize },
1544 20usize,
1545 concat!(
1546 "Alignment of field: ",
1547 stringify!(_IP_ADAPTER_PREFIX_XP),
1548 "::",
1549 stringify!(PrefixLength)
1550 )
1551 );
1552 }
1553 impl Clone for _IP_ADAPTER_PREFIX_XP {
clone(&self) -> Self1554 fn clone(&self) -> Self {
1555 *self
1556 }
1557 }
1558 pub type PIP_ADAPTER_PREFIX_XP = *mut _IP_ADAPTER_PREFIX_XP;
1559 #[repr(C)]
1560 #[derive(Copy)]
1561 pub struct _IP_ADAPTER_DNS_SUFFIX {
1562 pub Next: *mut _IP_ADAPTER_DNS_SUFFIX,
1563 pub String: [WCHAR; 256usize],
1564 }
1565 #[test]
bindgen_test_layout__IP_ADAPTER_DNS_SUFFIX()1566 fn bindgen_test_layout__IP_ADAPTER_DNS_SUFFIX() {
1567 assert_eq!(
1568 ::std::mem::size_of::<_IP_ADAPTER_DNS_SUFFIX>(),
1569 516usize,
1570 concat!("Size of: ", stringify!(_IP_ADAPTER_DNS_SUFFIX))
1571 );
1572 assert_eq!(
1573 ::std::mem::align_of::<_IP_ADAPTER_DNS_SUFFIX>(),
1574 4usize,
1575 concat!("Alignment of ", stringify!(_IP_ADAPTER_DNS_SUFFIX))
1576 );
1577 assert_eq!(
1578 unsafe { &(*(0 as *const _IP_ADAPTER_DNS_SUFFIX)).Next as *const _ as usize },
1579 0usize,
1580 concat!(
1581 "Alignment of field: ",
1582 stringify!(_IP_ADAPTER_DNS_SUFFIX),
1583 "::",
1584 stringify!(Next)
1585 )
1586 );
1587 assert_eq!(
1588 unsafe { &(*(0 as *const _IP_ADAPTER_DNS_SUFFIX)).String as *const _ as usize },
1589 4usize,
1590 concat!(
1591 "Alignment of field: ",
1592 stringify!(_IP_ADAPTER_DNS_SUFFIX),
1593 "::",
1594 stringify!(String)
1595 )
1596 );
1597 }
1598 impl Clone for _IP_ADAPTER_DNS_SUFFIX {
clone(&self) -> Self1599 fn clone(&self) -> Self {
1600 *self
1601 }
1602 }
1603 pub type PIP_ADAPTER_DNS_SUFFIX = *mut _IP_ADAPTER_DNS_SUFFIX;
1604 #[repr(C)]
1605 #[derive(Copy)]
1606 pub struct _IP_ADAPTER_ADDRESSES_LH {
1607 pub __bindgen_anon_1: _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1,
1608 pub Next: *mut _IP_ADAPTER_ADDRESSES_LH,
1609 pub AdapterName: PCHAR,
1610 pub FirstUnicastAddress: PIP_ADAPTER_UNICAST_ADDRESS_LH,
1611 pub FirstAnycastAddress: PIP_ADAPTER_ANYCAST_ADDRESS_XP,
1612 pub FirstMulticastAddress: PIP_ADAPTER_MULTICAST_ADDRESS_XP,
1613 pub FirstDnsServerAddress: PIP_ADAPTER_DNS_SERVER_ADDRESS_XP,
1614 pub DnsSuffix: PWCHAR,
1615 pub Description: PWCHAR,
1616 pub FriendlyName: PWCHAR,
1617 pub PhysicalAddress: [BYTE; 8usize],
1618 pub PhysicalAddressLength: ULONG,
1619 pub __bindgen_anon_2: _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2,
1620 pub Mtu: ULONG,
1621 pub IfType: IFTYPE,
1622 pub OperStatus: IF_OPER_STATUS,
1623 pub Ipv6IfIndex: IF_INDEX,
1624 pub ZoneIndices: [ULONG; 16usize],
1625 pub FirstPrefix: PIP_ADAPTER_PREFIX_XP,
1626 pub TransmitLinkSpeed: ULONG64,
1627 pub ReceiveLinkSpeed: ULONG64,
1628 pub FirstWinsServerAddress: PIP_ADAPTER_WINS_SERVER_ADDRESS_LH,
1629 pub FirstGatewayAddress: PIP_ADAPTER_GATEWAY_ADDRESS_LH,
1630 pub Ipv4Metric: ULONG,
1631 pub Ipv6Metric: ULONG,
1632 pub Luid: IF_LUID,
1633 pub Dhcpv4Server: SOCKET_ADDRESS,
1634 pub CompartmentId: NET_IF_COMPARTMENT_ID,
1635 pub NetworkGuid: NET_IF_NETWORK_GUID,
1636 pub ConnectionType: NET_IF_CONNECTION_TYPE,
1637 pub TunnelType: TUNNEL_TYPE,
1638 pub Dhcpv6Server: SOCKET_ADDRESS,
1639 pub Dhcpv6ClientDuid: [BYTE; 130usize],
1640 pub Dhcpv6ClientDuidLength: ULONG,
1641 pub Dhcpv6Iaid: ULONG,
1642 pub FirstDnsSuffix: PIP_ADAPTER_DNS_SUFFIX,
1643 }
1644 #[repr(C)]
1645 #[derive(Copy)]
1646 pub union _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1 {
1647 pub Alignment: ULONGLONG,
1648 pub __bindgen_anon_1: _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1__bindgen_ty_1,
1649 _bindgen_union_align: u64,
1650 }
1651 #[repr(C)]
1652 #[derive(Debug, Copy)]
1653 pub struct _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1__bindgen_ty_1 {
1654 pub Length: ULONG,
1655 pub IfIndex: IF_INDEX,
1656 }
1657 #[test]
bindgen_test_layout__IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1__bindgen_ty_1()1658 fn bindgen_test_layout__IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1__bindgen_ty_1() {
1659 assert_eq!(
1660 ::std::mem::size_of::<_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1__bindgen_ty_1>(),
1661 8usize,
1662 concat!(
1663 "Size of: ",
1664 stringify!(_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1__bindgen_ty_1)
1665 )
1666 );
1667 assert_eq!(
1668 ::std::mem::align_of::<_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1__bindgen_ty_1>(),
1669 4usize,
1670 concat!(
1671 "Alignment of ",
1672 stringify!(_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1__bindgen_ty_1)
1673 )
1674 );
1675 assert_eq!(
1676 unsafe {
1677 &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1__bindgen_ty_1)).Length
1678 as *const _ as usize
1679 },
1680 0usize,
1681 concat!(
1682 "Alignment of field: ",
1683 stringify!(_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1__bindgen_ty_1),
1684 "::",
1685 stringify!(Length)
1686 )
1687 );
1688 assert_eq!(
1689 unsafe {
1690 &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1__bindgen_ty_1)).IfIndex
1691 as *const _ as usize
1692 },
1693 4usize,
1694 concat!(
1695 "Alignment of field: ",
1696 stringify!(_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1__bindgen_ty_1),
1697 "::",
1698 stringify!(IfIndex)
1699 )
1700 );
1701 }
1702 impl Clone for _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1__bindgen_ty_1 {
clone(&self) -> Self1703 fn clone(&self) -> Self {
1704 *self
1705 }
1706 }
1707 #[test]
bindgen_test_layout__IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1()1708 fn bindgen_test_layout__IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1() {
1709 assert_eq!(
1710 ::std::mem::size_of::<_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1>(),
1711 8usize,
1712 concat!(
1713 "Size of: ",
1714 stringify!(_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1)
1715 )
1716 );
1717 assert_eq!(
1718 ::std::mem::align_of::<_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1>(),
1719 8usize,
1720 concat!(
1721 "Alignment of ",
1722 stringify!(_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1)
1723 )
1724 );
1725 assert_eq!(
1726 unsafe {
1727 &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1)).Alignment as *const _ as usize
1728 },
1729 0usize,
1730 concat!(
1731 "Alignment of field: ",
1732 stringify!(_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1),
1733 "::",
1734 stringify!(Alignment)
1735 )
1736 );
1737 }
1738 impl Clone for _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_1 {
clone(&self) -> Self1739 fn clone(&self) -> Self {
1740 *self
1741 }
1742 }
1743 #[repr(C)]
1744 #[derive(Copy)]
1745 pub union _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2 {
1746 pub Flags: ULONG,
1747 pub __bindgen_anon_1: _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2__bindgen_ty_1,
1748 _bindgen_union_align: u32,
1749 }
1750 #[repr(C)]
1751 #[derive(Debug, Copy)]
1752 pub struct _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2__bindgen_ty_1 {
1753 pub _bitfield_1: [u8; 2usize],
1754 pub __bindgen_padding_0: u16,
1755 pub __bindgen_align: [u32; 0usize],
1756 }
1757 #[test]
bindgen_test_layout__IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2__bindgen_ty_1()1758 fn bindgen_test_layout__IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2__bindgen_ty_1() {
1759 assert_eq!(
1760 ::std::mem::size_of::<_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2__bindgen_ty_1>(),
1761 4usize,
1762 concat!(
1763 "Size of: ",
1764 stringify!(_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2__bindgen_ty_1)
1765 )
1766 );
1767 assert_eq!(
1768 ::std::mem::align_of::<_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2__bindgen_ty_1>(),
1769 4usize,
1770 concat!(
1771 "Alignment of ",
1772 stringify!(_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2__bindgen_ty_1)
1773 )
1774 );
1775 }
1776 impl Clone for _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2__bindgen_ty_1 {
clone(&self) -> Self1777 fn clone(&self) -> Self {
1778 *self
1779 }
1780 }
1781 impl _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2__bindgen_ty_1 {
1782 #[inline]
DdnsEnabled(&self) -> ULONG1783 pub fn DdnsEnabled(&self) -> ULONG {
1784 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
1785 unsafe {
1786 ::std::ptr::copy_nonoverlapping(
1787 &self._bitfield_1 as *const _ as *const u8,
1788 &mut unit_field_val as *mut u16 as *mut u8,
1789 ::std::mem::size_of::<u16>(),
1790 )
1791 };
1792 let mask = 0x1 as u16;
1793 let val = (unit_field_val & mask) >> 0usize;
1794 unsafe { ::std::mem::transmute(val as u32) }
1795 }
1796 #[inline]
set_DdnsEnabled(&mut self, val: ULONG)1797 pub fn set_DdnsEnabled(&mut self, val: ULONG) {
1798 let mask = 0x1 as u16;
1799 let val = val as u32 as u16;
1800 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
1801 unsafe {
1802 ::std::ptr::copy_nonoverlapping(
1803 &self._bitfield_1 as *const _ as *const u8,
1804 &mut unit_field_val as *mut u16 as *mut u8,
1805 ::std::mem::size_of::<u16>(),
1806 )
1807 };
1808 unit_field_val &= !mask;
1809 unit_field_val |= (val << 0usize) & mask;
1810 unsafe {
1811 ::std::ptr::copy_nonoverlapping(
1812 &unit_field_val as *const _ as *const u8,
1813 &mut self._bitfield_1 as *mut _ as *mut u8,
1814 ::std::mem::size_of::<u16>(),
1815 );
1816 }
1817 }
1818 #[inline]
RegisterAdapterSuffix(&self) -> ULONG1819 pub fn RegisterAdapterSuffix(&self) -> ULONG {
1820 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
1821 unsafe {
1822 ::std::ptr::copy_nonoverlapping(
1823 &self._bitfield_1 as *const _ as *const u8,
1824 &mut unit_field_val as *mut u16 as *mut u8,
1825 ::std::mem::size_of::<u16>(),
1826 )
1827 };
1828 let mask = 0x2 as u16;
1829 let val = (unit_field_val & mask) >> 1usize;
1830 unsafe { ::std::mem::transmute(val as u32) }
1831 }
1832 #[inline]
set_RegisterAdapterSuffix(&mut self, val: ULONG)1833 pub fn set_RegisterAdapterSuffix(&mut self, val: ULONG) {
1834 let mask = 0x2 as u16;
1835 let val = val as u32 as u16;
1836 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
1837 unsafe {
1838 ::std::ptr::copy_nonoverlapping(
1839 &self._bitfield_1 as *const _ as *const u8,
1840 &mut unit_field_val as *mut u16 as *mut u8,
1841 ::std::mem::size_of::<u16>(),
1842 )
1843 };
1844 unit_field_val &= !mask;
1845 unit_field_val |= (val << 1usize) & mask;
1846 unsafe {
1847 ::std::ptr::copy_nonoverlapping(
1848 &unit_field_val as *const _ as *const u8,
1849 &mut self._bitfield_1 as *mut _ as *mut u8,
1850 ::std::mem::size_of::<u16>(),
1851 );
1852 }
1853 }
1854 #[inline]
Dhcpv4Enabled(&self) -> ULONG1855 pub fn Dhcpv4Enabled(&self) -> ULONG {
1856 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
1857 unsafe {
1858 ::std::ptr::copy_nonoverlapping(
1859 &self._bitfield_1 as *const _ as *const u8,
1860 &mut unit_field_val as *mut u16 as *mut u8,
1861 ::std::mem::size_of::<u16>(),
1862 )
1863 };
1864 let mask = 0x4 as u16;
1865 let val = (unit_field_val & mask) >> 2usize;
1866 unsafe { ::std::mem::transmute(val as u32) }
1867 }
1868 #[inline]
set_Dhcpv4Enabled(&mut self, val: ULONG)1869 pub fn set_Dhcpv4Enabled(&mut self, val: ULONG) {
1870 let mask = 0x4 as u16;
1871 let val = val as u32 as u16;
1872 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
1873 unsafe {
1874 ::std::ptr::copy_nonoverlapping(
1875 &self._bitfield_1 as *const _ as *const u8,
1876 &mut unit_field_val as *mut u16 as *mut u8,
1877 ::std::mem::size_of::<u16>(),
1878 )
1879 };
1880 unit_field_val &= !mask;
1881 unit_field_val |= (val << 2usize) & mask;
1882 unsafe {
1883 ::std::ptr::copy_nonoverlapping(
1884 &unit_field_val as *const _ as *const u8,
1885 &mut self._bitfield_1 as *mut _ as *mut u8,
1886 ::std::mem::size_of::<u16>(),
1887 );
1888 }
1889 }
1890 #[inline]
ReceiveOnly(&self) -> ULONG1891 pub fn ReceiveOnly(&self) -> ULONG {
1892 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
1893 unsafe {
1894 ::std::ptr::copy_nonoverlapping(
1895 &self._bitfield_1 as *const _ as *const u8,
1896 &mut unit_field_val as *mut u16 as *mut u8,
1897 ::std::mem::size_of::<u16>(),
1898 )
1899 };
1900 let mask = 0x8 as u16;
1901 let val = (unit_field_val & mask) >> 3usize;
1902 unsafe { ::std::mem::transmute(val as u32) }
1903 }
1904 #[inline]
set_ReceiveOnly(&mut self, val: ULONG)1905 pub fn set_ReceiveOnly(&mut self, val: ULONG) {
1906 let mask = 0x8 as u16;
1907 let val = val as u32 as u16;
1908 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
1909 unsafe {
1910 ::std::ptr::copy_nonoverlapping(
1911 &self._bitfield_1 as *const _ as *const u8,
1912 &mut unit_field_val as *mut u16 as *mut u8,
1913 ::std::mem::size_of::<u16>(),
1914 )
1915 };
1916 unit_field_val &= !mask;
1917 unit_field_val |= (val << 3usize) & mask;
1918 unsafe {
1919 ::std::ptr::copy_nonoverlapping(
1920 &unit_field_val as *const _ as *const u8,
1921 &mut self._bitfield_1 as *mut _ as *mut u8,
1922 ::std::mem::size_of::<u16>(),
1923 );
1924 }
1925 }
1926 #[inline]
NoMulticast(&self) -> ULONG1927 pub fn NoMulticast(&self) -> ULONG {
1928 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
1929 unsafe {
1930 ::std::ptr::copy_nonoverlapping(
1931 &self._bitfield_1 as *const _ as *const u8,
1932 &mut unit_field_val as *mut u16 as *mut u8,
1933 ::std::mem::size_of::<u16>(),
1934 )
1935 };
1936 let mask = 0x10 as u16;
1937 let val = (unit_field_val & mask) >> 4usize;
1938 unsafe { ::std::mem::transmute(val as u32) }
1939 }
1940 #[inline]
set_NoMulticast(&mut self, val: ULONG)1941 pub fn set_NoMulticast(&mut self, val: ULONG) {
1942 let mask = 0x10 as u16;
1943 let val = val as u32 as u16;
1944 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
1945 unsafe {
1946 ::std::ptr::copy_nonoverlapping(
1947 &self._bitfield_1 as *const _ as *const u8,
1948 &mut unit_field_val as *mut u16 as *mut u8,
1949 ::std::mem::size_of::<u16>(),
1950 )
1951 };
1952 unit_field_val &= !mask;
1953 unit_field_val |= (val << 4usize) & mask;
1954 unsafe {
1955 ::std::ptr::copy_nonoverlapping(
1956 &unit_field_val as *const _ as *const u8,
1957 &mut self._bitfield_1 as *mut _ as *mut u8,
1958 ::std::mem::size_of::<u16>(),
1959 );
1960 }
1961 }
1962 #[inline]
Ipv6OtherStatefulConfig(&self) -> ULONG1963 pub fn Ipv6OtherStatefulConfig(&self) -> ULONG {
1964 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
1965 unsafe {
1966 ::std::ptr::copy_nonoverlapping(
1967 &self._bitfield_1 as *const _ as *const u8,
1968 &mut unit_field_val as *mut u16 as *mut u8,
1969 ::std::mem::size_of::<u16>(),
1970 )
1971 };
1972 let mask = 0x20 as u16;
1973 let val = (unit_field_val & mask) >> 5usize;
1974 unsafe { ::std::mem::transmute(val as u32) }
1975 }
1976 #[inline]
set_Ipv6OtherStatefulConfig(&mut self, val: ULONG)1977 pub fn set_Ipv6OtherStatefulConfig(&mut self, val: ULONG) {
1978 let mask = 0x20 as u16;
1979 let val = val as u32 as u16;
1980 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
1981 unsafe {
1982 ::std::ptr::copy_nonoverlapping(
1983 &self._bitfield_1 as *const _ as *const u8,
1984 &mut unit_field_val as *mut u16 as *mut u8,
1985 ::std::mem::size_of::<u16>(),
1986 )
1987 };
1988 unit_field_val &= !mask;
1989 unit_field_val |= (val << 5usize) & mask;
1990 unsafe {
1991 ::std::ptr::copy_nonoverlapping(
1992 &unit_field_val as *const _ as *const u8,
1993 &mut self._bitfield_1 as *mut _ as *mut u8,
1994 ::std::mem::size_of::<u16>(),
1995 );
1996 }
1997 }
1998 #[inline]
NetbiosOverTcpipEnabled(&self) -> ULONG1999 pub fn NetbiosOverTcpipEnabled(&self) -> ULONG {
2000 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
2001 unsafe {
2002 ::std::ptr::copy_nonoverlapping(
2003 &self._bitfield_1 as *const _ as *const u8,
2004 &mut unit_field_val as *mut u16 as *mut u8,
2005 ::std::mem::size_of::<u16>(),
2006 )
2007 };
2008 let mask = 0x40 as u16;
2009 let val = (unit_field_val & mask) >> 6usize;
2010 unsafe { ::std::mem::transmute(val as u32) }
2011 }
2012 #[inline]
set_NetbiosOverTcpipEnabled(&mut self, val: ULONG)2013 pub fn set_NetbiosOverTcpipEnabled(&mut self, val: ULONG) {
2014 let mask = 0x40 as u16;
2015 let val = val as u32 as u16;
2016 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
2017 unsafe {
2018 ::std::ptr::copy_nonoverlapping(
2019 &self._bitfield_1 as *const _ as *const u8,
2020 &mut unit_field_val as *mut u16 as *mut u8,
2021 ::std::mem::size_of::<u16>(),
2022 )
2023 };
2024 unit_field_val &= !mask;
2025 unit_field_val |= (val << 6usize) & mask;
2026 unsafe {
2027 ::std::ptr::copy_nonoverlapping(
2028 &unit_field_val as *const _ as *const u8,
2029 &mut self._bitfield_1 as *mut _ as *mut u8,
2030 ::std::mem::size_of::<u16>(),
2031 );
2032 }
2033 }
2034 #[inline]
Ipv4Enabled(&self) -> ULONG2035 pub fn Ipv4Enabled(&self) -> ULONG {
2036 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
2037 unsafe {
2038 ::std::ptr::copy_nonoverlapping(
2039 &self._bitfield_1 as *const _ as *const u8,
2040 &mut unit_field_val as *mut u16 as *mut u8,
2041 ::std::mem::size_of::<u16>(),
2042 )
2043 };
2044 let mask = 0x80 as u16;
2045 let val = (unit_field_val & mask) >> 7usize;
2046 unsafe { ::std::mem::transmute(val as u32) }
2047 }
2048 #[inline]
set_Ipv4Enabled(&mut self, val: ULONG)2049 pub fn set_Ipv4Enabled(&mut self, val: ULONG) {
2050 let mask = 0x80 as u16;
2051 let val = val as u32 as u16;
2052 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
2053 unsafe {
2054 ::std::ptr::copy_nonoverlapping(
2055 &self._bitfield_1 as *const _ as *const u8,
2056 &mut unit_field_val as *mut u16 as *mut u8,
2057 ::std::mem::size_of::<u16>(),
2058 )
2059 };
2060 unit_field_val &= !mask;
2061 unit_field_val |= (val << 7usize) & mask;
2062 unsafe {
2063 ::std::ptr::copy_nonoverlapping(
2064 &unit_field_val as *const _ as *const u8,
2065 &mut self._bitfield_1 as *mut _ as *mut u8,
2066 ::std::mem::size_of::<u16>(),
2067 );
2068 }
2069 }
2070 #[inline]
Ipv6Enabled(&self) -> ULONG2071 pub fn Ipv6Enabled(&self) -> ULONG {
2072 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
2073 unsafe {
2074 ::std::ptr::copy_nonoverlapping(
2075 &self._bitfield_1 as *const _ as *const u8,
2076 &mut unit_field_val as *mut u16 as *mut u8,
2077 ::std::mem::size_of::<u16>(),
2078 )
2079 };
2080 let mask = 0x100 as u16;
2081 let val = (unit_field_val & mask) >> 8usize;
2082 unsafe { ::std::mem::transmute(val as u32) }
2083 }
2084 #[inline]
set_Ipv6Enabled(&mut self, val: ULONG)2085 pub fn set_Ipv6Enabled(&mut self, val: ULONG) {
2086 let mask = 0x100 as u16;
2087 let val = val as u32 as u16;
2088 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
2089 unsafe {
2090 ::std::ptr::copy_nonoverlapping(
2091 &self._bitfield_1 as *const _ as *const u8,
2092 &mut unit_field_val as *mut u16 as *mut u8,
2093 ::std::mem::size_of::<u16>(),
2094 )
2095 };
2096 unit_field_val &= !mask;
2097 unit_field_val |= (val << 8usize) & mask;
2098 unsafe {
2099 ::std::ptr::copy_nonoverlapping(
2100 &unit_field_val as *const _ as *const u8,
2101 &mut self._bitfield_1 as *mut _ as *mut u8,
2102 ::std::mem::size_of::<u16>(),
2103 );
2104 }
2105 }
2106 #[inline]
Ipv6ManagedAddressConfigurationSupported(&self) -> ULONG2107 pub fn Ipv6ManagedAddressConfigurationSupported(&self) -> ULONG {
2108 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
2109 unsafe {
2110 ::std::ptr::copy_nonoverlapping(
2111 &self._bitfield_1 as *const _ as *const u8,
2112 &mut unit_field_val as *mut u16 as *mut u8,
2113 ::std::mem::size_of::<u16>(),
2114 )
2115 };
2116 let mask = 0x200 as u16;
2117 let val = (unit_field_val & mask) >> 9usize;
2118 unsafe { ::std::mem::transmute(val as u32) }
2119 }
2120 #[inline]
set_Ipv6ManagedAddressConfigurationSupported(&mut self, val: ULONG)2121 pub fn set_Ipv6ManagedAddressConfigurationSupported(&mut self, val: ULONG) {
2122 let mask = 0x200 as u16;
2123 let val = val as u32 as u16;
2124 let mut unit_field_val: u16 = unsafe { ::std::mem::uninitialized() };
2125 unsafe {
2126 ::std::ptr::copy_nonoverlapping(
2127 &self._bitfield_1 as *const _ as *const u8,
2128 &mut unit_field_val as *mut u16 as *mut u8,
2129 ::std::mem::size_of::<u16>(),
2130 )
2131 };
2132 unit_field_val &= !mask;
2133 unit_field_val |= (val << 9usize) & mask;
2134 unsafe {
2135 ::std::ptr::copy_nonoverlapping(
2136 &unit_field_val as *const _ as *const u8,
2137 &mut self._bitfield_1 as *mut _ as *mut u8,
2138 ::std::mem::size_of::<u16>(),
2139 );
2140 }
2141 }
2142 #[inline]
new_bitfield_1( DdnsEnabled: ULONG, RegisterAdapterSuffix: ULONG, Dhcpv4Enabled: ULONG, ReceiveOnly: ULONG, NoMulticast: ULONG, Ipv6OtherStatefulConfig: ULONG, NetbiosOverTcpipEnabled: ULONG, Ipv4Enabled: ULONG, Ipv6Enabled: ULONG, Ipv6ManagedAddressConfigurationSupported: ULONG, ) -> u162143 pub fn new_bitfield_1(
2144 DdnsEnabled: ULONG,
2145 RegisterAdapterSuffix: ULONG,
2146 Dhcpv4Enabled: ULONG,
2147 ReceiveOnly: ULONG,
2148 NoMulticast: ULONG,
2149 Ipv6OtherStatefulConfig: ULONG,
2150 NetbiosOverTcpipEnabled: ULONG,
2151 Ipv4Enabled: ULONG,
2152 Ipv6Enabled: ULONG,
2153 Ipv6ManagedAddressConfigurationSupported: ULONG,
2154 ) -> u16 {
2155 ((((((((((0 | ((DdnsEnabled as u32 as u16) << 0usize) & (0x1 as u16))
2156 | ((RegisterAdapterSuffix as u32 as u16) << 1usize) & (0x2 as u16))
2157 | ((Dhcpv4Enabled as u32 as u16) << 2usize) & (0x4 as u16))
2158 | ((ReceiveOnly as u32 as u16) << 3usize) & (0x8 as u16))
2159 | ((NoMulticast as u32 as u16) << 4usize) & (0x10 as u16))
2160 | ((Ipv6OtherStatefulConfig as u32 as u16) << 5usize) & (0x20 as u16))
2161 | ((NetbiosOverTcpipEnabled as u32 as u16) << 6usize) & (0x40 as u16))
2162 | ((Ipv4Enabled as u32 as u16) << 7usize) & (0x80 as u16))
2163 | ((Ipv6Enabled as u32 as u16) << 8usize) & (0x100 as u16))
2164 | ((Ipv6ManagedAddressConfigurationSupported as u32 as u16) << 9usize) & (0x200 as u16))
2165 }
2166 }
2167 #[test]
bindgen_test_layout__IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2()2168 fn bindgen_test_layout__IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2() {
2169 assert_eq!(
2170 ::std::mem::size_of::<_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2>(),
2171 4usize,
2172 concat!(
2173 "Size of: ",
2174 stringify!(_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2)
2175 )
2176 );
2177 assert_eq!(
2178 ::std::mem::align_of::<_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2>(),
2179 4usize,
2180 concat!(
2181 "Alignment of ",
2182 stringify!(_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2)
2183 )
2184 );
2185 assert_eq!(
2186 unsafe {
2187 &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2)).Flags as *const _ as usize
2188 },
2189 0usize,
2190 concat!(
2191 "Alignment of field: ",
2192 stringify!(_IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2),
2193 "::",
2194 stringify!(Flags)
2195 )
2196 );
2197 }
2198 impl Clone for _IP_ADAPTER_ADDRESSES_LH__bindgen_ty_2 {
clone(&self) -> Self2199 fn clone(&self) -> Self {
2200 *self
2201 }
2202 }
2203 #[test]
bindgen_test_layout__IP_ADAPTER_ADDRESSES_LH()2204 fn bindgen_test_layout__IP_ADAPTER_ADDRESSES_LH() {
2205 assert_eq!(
2206 ::std::mem::size_of::<_IP_ADAPTER_ADDRESSES_LH>(),
2207 376usize,
2208 concat!("Size of: ", stringify!(_IP_ADAPTER_ADDRESSES_LH))
2209 );
2210 assert_eq!(
2211 ::std::mem::align_of::<_IP_ADAPTER_ADDRESSES_LH>(),
2212 8usize,
2213 concat!("Alignment of ", stringify!(_IP_ADAPTER_ADDRESSES_LH))
2214 );
2215 assert_eq!(
2216 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).Next as *const _ as usize },
2217 8usize,
2218 concat!(
2219 "Alignment of field: ",
2220 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2221 "::",
2222 stringify!(Next)
2223 )
2224 );
2225 assert_eq!(
2226 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).AdapterName as *const _ as usize },
2227 12usize,
2228 concat!(
2229 "Alignment of field: ",
2230 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2231 "::",
2232 stringify!(AdapterName)
2233 )
2234 );
2235 assert_eq!(
2236 unsafe {
2237 &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).FirstUnicastAddress as *const _ as usize
2238 },
2239 16usize,
2240 concat!(
2241 "Alignment of field: ",
2242 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2243 "::",
2244 stringify!(FirstUnicastAddress)
2245 )
2246 );
2247 assert_eq!(
2248 unsafe {
2249 &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).FirstAnycastAddress as *const _ as usize
2250 },
2251 20usize,
2252 concat!(
2253 "Alignment of field: ",
2254 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2255 "::",
2256 stringify!(FirstAnycastAddress)
2257 )
2258 );
2259 assert_eq!(
2260 unsafe {
2261 &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).FirstMulticastAddress as *const _ as usize
2262 },
2263 24usize,
2264 concat!(
2265 "Alignment of field: ",
2266 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2267 "::",
2268 stringify!(FirstMulticastAddress)
2269 )
2270 );
2271 assert_eq!(
2272 unsafe {
2273 &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).FirstDnsServerAddress as *const _ as usize
2274 },
2275 28usize,
2276 concat!(
2277 "Alignment of field: ",
2278 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2279 "::",
2280 stringify!(FirstDnsServerAddress)
2281 )
2282 );
2283 assert_eq!(
2284 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).DnsSuffix as *const _ as usize },
2285 32usize,
2286 concat!(
2287 "Alignment of field: ",
2288 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2289 "::",
2290 stringify!(DnsSuffix)
2291 )
2292 );
2293 assert_eq!(
2294 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).Description as *const _ as usize },
2295 36usize,
2296 concat!(
2297 "Alignment of field: ",
2298 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2299 "::",
2300 stringify!(Description)
2301 )
2302 );
2303 assert_eq!(
2304 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).FriendlyName as *const _ as usize },
2305 40usize,
2306 concat!(
2307 "Alignment of field: ",
2308 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2309 "::",
2310 stringify!(FriendlyName)
2311 )
2312 );
2313 assert_eq!(
2314 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).PhysicalAddress as *const _ as usize },
2315 44usize,
2316 concat!(
2317 "Alignment of field: ",
2318 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2319 "::",
2320 stringify!(PhysicalAddress)
2321 )
2322 );
2323 assert_eq!(
2324 unsafe {
2325 &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).PhysicalAddressLength as *const _ as usize
2326 },
2327 52usize,
2328 concat!(
2329 "Alignment of field: ",
2330 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2331 "::",
2332 stringify!(PhysicalAddressLength)
2333 )
2334 );
2335 assert_eq!(
2336 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).Mtu as *const _ as usize },
2337 60usize,
2338 concat!(
2339 "Alignment of field: ",
2340 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2341 "::",
2342 stringify!(Mtu)
2343 )
2344 );
2345 assert_eq!(
2346 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).IfType as *const _ as usize },
2347 64usize,
2348 concat!(
2349 "Alignment of field: ",
2350 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2351 "::",
2352 stringify!(IfType)
2353 )
2354 );
2355 assert_eq!(
2356 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).OperStatus as *const _ as usize },
2357 68usize,
2358 concat!(
2359 "Alignment of field: ",
2360 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2361 "::",
2362 stringify!(OperStatus)
2363 )
2364 );
2365 assert_eq!(
2366 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).Ipv6IfIndex as *const _ as usize },
2367 72usize,
2368 concat!(
2369 "Alignment of field: ",
2370 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2371 "::",
2372 stringify!(Ipv6IfIndex)
2373 )
2374 );
2375 assert_eq!(
2376 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).ZoneIndices as *const _ as usize },
2377 76usize,
2378 concat!(
2379 "Alignment of field: ",
2380 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2381 "::",
2382 stringify!(ZoneIndices)
2383 )
2384 );
2385 assert_eq!(
2386 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).FirstPrefix as *const _ as usize },
2387 140usize,
2388 concat!(
2389 "Alignment of field: ",
2390 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2391 "::",
2392 stringify!(FirstPrefix)
2393 )
2394 );
2395 assert_eq!(
2396 unsafe {
2397 &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).TransmitLinkSpeed as *const _ as usize
2398 },
2399 144usize,
2400 concat!(
2401 "Alignment of field: ",
2402 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2403 "::",
2404 stringify!(TransmitLinkSpeed)
2405 )
2406 );
2407 assert_eq!(
2408 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).ReceiveLinkSpeed as *const _ as usize },
2409 152usize,
2410 concat!(
2411 "Alignment of field: ",
2412 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2413 "::",
2414 stringify!(ReceiveLinkSpeed)
2415 )
2416 );
2417 assert_eq!(
2418 unsafe {
2419 &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).FirstWinsServerAddress as *const _ as usize
2420 },
2421 160usize,
2422 concat!(
2423 "Alignment of field: ",
2424 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2425 "::",
2426 stringify!(FirstWinsServerAddress)
2427 )
2428 );
2429 assert_eq!(
2430 unsafe {
2431 &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).FirstGatewayAddress as *const _ as usize
2432 },
2433 164usize,
2434 concat!(
2435 "Alignment of field: ",
2436 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2437 "::",
2438 stringify!(FirstGatewayAddress)
2439 )
2440 );
2441 assert_eq!(
2442 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).Ipv4Metric as *const _ as usize },
2443 168usize,
2444 concat!(
2445 "Alignment of field: ",
2446 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2447 "::",
2448 stringify!(Ipv4Metric)
2449 )
2450 );
2451 assert_eq!(
2452 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).Ipv6Metric as *const _ as usize },
2453 172usize,
2454 concat!(
2455 "Alignment of field: ",
2456 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2457 "::",
2458 stringify!(Ipv6Metric)
2459 )
2460 );
2461 assert_eq!(
2462 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).Luid as *const _ as usize },
2463 176usize,
2464 concat!(
2465 "Alignment of field: ",
2466 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2467 "::",
2468 stringify!(Luid)
2469 )
2470 );
2471 assert_eq!(
2472 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).Dhcpv4Server as *const _ as usize },
2473 184usize,
2474 concat!(
2475 "Alignment of field: ",
2476 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2477 "::",
2478 stringify!(Dhcpv4Server)
2479 )
2480 );
2481 assert_eq!(
2482 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).CompartmentId as *const _ as usize },
2483 192usize,
2484 concat!(
2485 "Alignment of field: ",
2486 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2487 "::",
2488 stringify!(CompartmentId)
2489 )
2490 );
2491 assert_eq!(
2492 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).NetworkGuid as *const _ as usize },
2493 196usize,
2494 concat!(
2495 "Alignment of field: ",
2496 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2497 "::",
2498 stringify!(NetworkGuid)
2499 )
2500 );
2501 assert_eq!(
2502 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).ConnectionType as *const _ as usize },
2503 212usize,
2504 concat!(
2505 "Alignment of field: ",
2506 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2507 "::",
2508 stringify!(ConnectionType)
2509 )
2510 );
2511 assert_eq!(
2512 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).TunnelType as *const _ as usize },
2513 216usize,
2514 concat!(
2515 "Alignment of field: ",
2516 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2517 "::",
2518 stringify!(TunnelType)
2519 )
2520 );
2521 assert_eq!(
2522 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).Dhcpv6Server as *const _ as usize },
2523 220usize,
2524 concat!(
2525 "Alignment of field: ",
2526 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2527 "::",
2528 stringify!(Dhcpv6Server)
2529 )
2530 );
2531 assert_eq!(
2532 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).Dhcpv6ClientDuid as *const _ as usize },
2533 228usize,
2534 concat!(
2535 "Alignment of field: ",
2536 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2537 "::",
2538 stringify!(Dhcpv6ClientDuid)
2539 )
2540 );
2541 assert_eq!(
2542 unsafe {
2543 &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).Dhcpv6ClientDuidLength as *const _ as usize
2544 },
2545 360usize,
2546 concat!(
2547 "Alignment of field: ",
2548 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2549 "::",
2550 stringify!(Dhcpv6ClientDuidLength)
2551 )
2552 );
2553 assert_eq!(
2554 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).Dhcpv6Iaid as *const _ as usize },
2555 364usize,
2556 concat!(
2557 "Alignment of field: ",
2558 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2559 "::",
2560 stringify!(Dhcpv6Iaid)
2561 )
2562 );
2563 assert_eq!(
2564 unsafe { &(*(0 as *const _IP_ADAPTER_ADDRESSES_LH)).FirstDnsSuffix as *const _ as usize },
2565 368usize,
2566 concat!(
2567 "Alignment of field: ",
2568 stringify!(_IP_ADAPTER_ADDRESSES_LH),
2569 "::",
2570 stringify!(FirstDnsSuffix)
2571 )
2572 );
2573 }
2574 impl Clone for _IP_ADAPTER_ADDRESSES_LH {
clone(&self) -> Self2575 fn clone(&self) -> Self {
2576 *self
2577 }
2578 }
2579 pub type IP_ADAPTER_ADDRESSES_LH = _IP_ADAPTER_ADDRESSES_LH;
2580 pub type PIP_ADAPTER_ADDRESSES = *mut IP_ADAPTER_ADDRESSES_LH;
2581 extern "stdcall" {
2582 #[link_name = "\u{1}_GetAdaptersAddresses@20"]
GetAdaptersAddresses( Family: ULONG, Flags: ULONG, Reserved: PVOID, AdapterAddresses: PIP_ADAPTER_ADDRESSES, SizePointer: PULONG, ) -> ULONG2583 pub fn GetAdaptersAddresses(
2584 Family: ULONG,
2585 Flags: ULONG,
2586 Reserved: PVOID,
2587 AdapterAddresses: PIP_ADAPTER_ADDRESSES,
2588 SizePointer: PULONG,
2589 ) -> ULONG;
2590 }
2591