1 #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)]
2 #[link(name = "windows")]
3 extern "system" {
4     #[cfg(feature = "Win32_Foundation")]
WnvOpen() -> super::super::Foundation::HANDLE5     pub fn WnvOpen() -> super::super::Foundation::HANDLE;
6     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))]
WnvRequestNotification(wnvhandle: super::super::Foundation::HANDLE, notificationparam: *mut WNV_NOTIFICATION_PARAM, overlapped: *mut super::super::System::IO::OVERLAPPED, bytestransferred: *mut u32) -> u327     pub fn WnvRequestNotification(wnvhandle: super::super::Foundation::HANDLE, notificationparam: *mut WNV_NOTIFICATION_PARAM, overlapped: *mut super::super::System::IO::OVERLAPPED, bytestransferred: *mut u32) -> u32;
8 }
9 pub const WNV_API_MAJOR_VERSION_1: u32 = 1u32;
10 pub const WNV_API_MINOR_VERSION_0: u32 = 0u32;
11 pub type WNV_CA_NOTIFICATION_TYPE = i32;
12 pub const WnvCustomerAddressAdded: WNV_CA_NOTIFICATION_TYPE = 0i32;
13 pub const WnvCustomerAddressDeleted: WNV_CA_NOTIFICATION_TYPE = 1i32;
14 pub const WnvCustomerAddressMoved: WNV_CA_NOTIFICATION_TYPE = 2i32;
15 pub const WnvCustomerAddressMax: WNV_CA_NOTIFICATION_TYPE = 3i32;
16 #[repr(C)]
17 #[cfg(all(feature = "Win32_NetworkManagement_WindowsFilteringPlatform", feature = "Win32_Networking_WinSock"))]
18 pub struct WNV_CUSTOMER_ADDRESS_CHANGE_PARAM {
19     pub MACAddress: super::WindowsFilteringPlatform::DL_EUI48,
20     pub CAFamily: u16,
21     pub CA: WNV_IP_ADDRESS,
22     pub VirtualSubnetId: u32,
23     pub PAFamily: u16,
24     pub PA: WNV_IP_ADDRESS,
25     pub NotificationReason: WNV_CA_NOTIFICATION_TYPE,
26 }
27 #[cfg(all(feature = "Win32_NetworkManagement_WindowsFilteringPlatform", feature = "Win32_Networking_WinSock"))]
28 impl ::core::marker::Copy for WNV_CUSTOMER_ADDRESS_CHANGE_PARAM {}
29 #[cfg(all(feature = "Win32_NetworkManagement_WindowsFilteringPlatform", feature = "Win32_Networking_WinSock"))]
30 impl ::core::clone::Clone for WNV_CUSTOMER_ADDRESS_CHANGE_PARAM {
clone(&self) -> Self31     fn clone(&self) -> Self {
32         *self
33     }
34 }
35 #[repr(C)]
36 #[cfg(feature = "Win32_Networking_WinSock")]
37 pub struct WNV_IP_ADDRESS {
38     pub IP: WNV_IP_ADDRESS_0,
39 }
40 #[cfg(feature = "Win32_Networking_WinSock")]
41 impl ::core::marker::Copy for WNV_IP_ADDRESS {}
42 #[cfg(feature = "Win32_Networking_WinSock")]
43 impl ::core::clone::Clone for WNV_IP_ADDRESS {
clone(&self) -> Self44     fn clone(&self) -> Self {
45         *self
46     }
47 }
48 #[repr(C)]
49 #[cfg(feature = "Win32_Networking_WinSock")]
50 pub union WNV_IP_ADDRESS_0 {
51     pub v4: super::super::Networking::WinSock::IN_ADDR,
52     pub v6: super::super::Networking::WinSock::IN6_ADDR,
53     pub Addr: [u8; 16],
54 }
55 #[cfg(feature = "Win32_Networking_WinSock")]
56 impl ::core::marker::Copy for WNV_IP_ADDRESS_0 {}
57 #[cfg(feature = "Win32_Networking_WinSock")]
58 impl ::core::clone::Clone for WNV_IP_ADDRESS_0 {
clone(&self) -> Self59     fn clone(&self) -> Self {
60         *self
61     }
62 }
63 #[repr(C)]
64 pub struct WNV_NOTIFICATION_PARAM {
65     pub Header: WNV_OBJECT_HEADER,
66     pub NotificationType: WNV_NOTIFICATION_TYPE,
67     pub PendingNotifications: u32,
68     pub Buffer: *mut u8,
69 }
70 impl ::core::marker::Copy for WNV_NOTIFICATION_PARAM {}
71 impl ::core::clone::Clone for WNV_NOTIFICATION_PARAM {
clone(&self) -> Self72     fn clone(&self) -> Self {
73         *self
74     }
75 }
76 pub type WNV_NOTIFICATION_TYPE = i32;
77 pub const WnvPolicyMismatchType: WNV_NOTIFICATION_TYPE = 0i32;
78 pub const WnvRedirectType: WNV_NOTIFICATION_TYPE = 1i32;
79 pub const WnvObjectChangeType: WNV_NOTIFICATION_TYPE = 2i32;
80 pub const WnvNotificationTypeMax: WNV_NOTIFICATION_TYPE = 3i32;
81 #[repr(C)]
82 #[cfg(all(feature = "Win32_NetworkManagement_WindowsFilteringPlatform", feature = "Win32_Networking_WinSock"))]
83 pub struct WNV_OBJECT_CHANGE_PARAM {
84     pub ObjectType: WNV_OBJECT_TYPE,
85     pub ObjectParam: WNV_OBJECT_CHANGE_PARAM_0,
86 }
87 #[cfg(all(feature = "Win32_NetworkManagement_WindowsFilteringPlatform", feature = "Win32_Networking_WinSock"))]
88 impl ::core::marker::Copy for WNV_OBJECT_CHANGE_PARAM {}
89 #[cfg(all(feature = "Win32_NetworkManagement_WindowsFilteringPlatform", feature = "Win32_Networking_WinSock"))]
90 impl ::core::clone::Clone for WNV_OBJECT_CHANGE_PARAM {
clone(&self) -> Self91     fn clone(&self) -> Self {
92         *self
93     }
94 }
95 #[repr(C)]
96 #[cfg(all(feature = "Win32_NetworkManagement_WindowsFilteringPlatform", feature = "Win32_Networking_WinSock"))]
97 pub union WNV_OBJECT_CHANGE_PARAM_0 {
98     pub ProviderAddressChange: WNV_PROVIDER_ADDRESS_CHANGE_PARAM,
99     pub CustomerAddressChange: WNV_CUSTOMER_ADDRESS_CHANGE_PARAM,
100 }
101 #[cfg(all(feature = "Win32_NetworkManagement_WindowsFilteringPlatform", feature = "Win32_Networking_WinSock"))]
102 impl ::core::marker::Copy for WNV_OBJECT_CHANGE_PARAM_0 {}
103 #[cfg(all(feature = "Win32_NetworkManagement_WindowsFilteringPlatform", feature = "Win32_Networking_WinSock"))]
104 impl ::core::clone::Clone for WNV_OBJECT_CHANGE_PARAM_0 {
clone(&self) -> Self105     fn clone(&self) -> Self {
106         *self
107     }
108 }
109 #[repr(C)]
110 pub struct WNV_OBJECT_HEADER {
111     pub MajorVersion: u8,
112     pub MinorVersion: u8,
113     pub Size: u32,
114 }
115 impl ::core::marker::Copy for WNV_OBJECT_HEADER {}
116 impl ::core::clone::Clone for WNV_OBJECT_HEADER {
clone(&self) -> Self117     fn clone(&self) -> Self {
118         *self
119     }
120 }
121 pub type WNV_OBJECT_TYPE = i32;
122 pub const WnvProviderAddressType: WNV_OBJECT_TYPE = 0i32;
123 pub const WnvCustomerAddressType: WNV_OBJECT_TYPE = 1i32;
124 pub const WnvObjectTypeMax: WNV_OBJECT_TYPE = 2i32;
125 #[repr(C)]
126 #[cfg(feature = "Win32_Networking_WinSock")]
127 pub struct WNV_POLICY_MISMATCH_PARAM {
128     pub CAFamily: u16,
129     pub PAFamily: u16,
130     pub VirtualSubnetId: u32,
131     pub CA: WNV_IP_ADDRESS,
132     pub PA: WNV_IP_ADDRESS,
133 }
134 #[cfg(feature = "Win32_Networking_WinSock")]
135 impl ::core::marker::Copy for WNV_POLICY_MISMATCH_PARAM {}
136 #[cfg(feature = "Win32_Networking_WinSock")]
137 impl ::core::clone::Clone for WNV_POLICY_MISMATCH_PARAM {
clone(&self) -> Self138     fn clone(&self) -> Self {
139         *self
140     }
141 }
142 #[repr(C)]
143 #[cfg(feature = "Win32_Networking_WinSock")]
144 pub struct WNV_PROVIDER_ADDRESS_CHANGE_PARAM {
145     pub PAFamily: u16,
146     pub PA: WNV_IP_ADDRESS,
147     pub AddressState: super::super::Networking::WinSock::NL_DAD_STATE,
148 }
149 #[cfg(feature = "Win32_Networking_WinSock")]
150 impl ::core::marker::Copy for WNV_PROVIDER_ADDRESS_CHANGE_PARAM {}
151 #[cfg(feature = "Win32_Networking_WinSock")]
152 impl ::core::clone::Clone for WNV_PROVIDER_ADDRESS_CHANGE_PARAM {
clone(&self) -> Self153     fn clone(&self) -> Self {
154         *self
155     }
156 }
157 #[repr(C)]
158 #[cfg(feature = "Win32_Networking_WinSock")]
159 pub struct WNV_REDIRECT_PARAM {
160     pub CAFamily: u16,
161     pub PAFamily: u16,
162     pub NewPAFamily: u16,
163     pub VirtualSubnetId: u32,
164     pub CA: WNV_IP_ADDRESS,
165     pub PA: WNV_IP_ADDRESS,
166     pub NewPA: WNV_IP_ADDRESS,
167 }
168 #[cfg(feature = "Win32_Networking_WinSock")]
169 impl ::core::marker::Copy for WNV_REDIRECT_PARAM {}
170 #[cfg(feature = "Win32_Networking_WinSock")]
171 impl ::core::clone::Clone for WNV_REDIRECT_PARAM {
clone(&self) -> Self172     fn clone(&self) -> Self {
173         *self
174     }
175 }
176