1 /*
2     automatically generated by rust-bindgen with:
3     bindgen.exe --whitelist-function=GetAdaptersAddresses wrapper.h -- --target=x86_64-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         16usize,
146         concat!("Size of: ", stringify!(_SOCKET_ADDRESS))
147     );
148     assert_eq!(
149         ::std::mem::align_of::<_SOCKET_ADDRESS>(),
150         8usize,
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         8usize,
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         64usize,
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         16usize,
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         32usize,
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         36usize,
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         40usize,
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         44usize,
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         48usize,
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         52usize,
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         56usize,
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         32usize,
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         16usize,
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         32usize,
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         16usize,
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         32usize,
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         16usize,
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         32usize,
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         16usize,
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         32usize,
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         16usize,
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         40usize,
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         16usize,
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         32usize,
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         520usize,
1570         concat!("Size of: ", stringify!(_IP_ADAPTER_DNS_SUFFIX))
1571     );
1572     assert_eq!(
1573         ::std::mem::align_of::<_IP_ADAPTER_DNS_SUFFIX>(),
1574         8usize,
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         8usize,
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         448usize,
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         16usize,
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         24usize,
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         32usize,
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         40usize,
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         48usize,
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         56usize,
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         64usize,
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         72usize,
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         80usize,
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         88usize,
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         96usize,
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         100usize,
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         104usize,
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         108usize,
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         112usize,
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         176usize,
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         184usize,
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         192usize,
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         200usize,
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         208usize,
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         216usize,
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         220usize,
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         224usize,
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         232usize,
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         248usize,
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         252usize,
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         268usize,
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         272usize,
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         280usize,
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         296usize,
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         428usize,
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         432usize,
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         440usize,
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 "C" {
GetAdaptersAddresses( Family: ULONG, Flags: ULONG, Reserved: PVOID, AdapterAddresses: PIP_ADAPTER_ADDRESSES, SizePointer: PULONG, ) -> ULONG2582     pub fn GetAdaptersAddresses(
2583         Family: ULONG,
2584         Flags: ULONG,
2585         Reserved: PVOID,
2586         AdapterAddresses: PIP_ADAPTER_ADDRESSES,
2587         SizePointer: PULONG,
2588     ) -> ULONG;
2589 }
2590