]> git.proxmox.com Git - rustc.git/blob - vendor/windows-sys/src/Windows/Win32/NetworkManagement/WindowsNetworkVirtualization/mod.rs
New upstream version 1.67.1+dfsg1
[rustc.git] / vendor / windows-sys / src / Windows / Win32 / NetworkManagement / WindowsNetworkVirtualization / mod.rs
1 #[cfg_attr(windows, link(name = "windows"))]
2 extern "system" {
3 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`, `\"Win32_Foundation\"`*"]
4 #[cfg(feature = "Win32_Foundation")]
5 pub fn WnvOpen() -> super::super::Foundation::HANDLE;
6 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"]
7 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))]
8 pub fn WnvRequestNotification(wnvhandle: super::super::Foundation::HANDLE, notificationparam: *mut WNV_NOTIFICATION_PARAM, overlapped: *mut super::super::System::IO::OVERLAPPED, bytestransferred: *mut u32) -> u32;
9 }
10 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
11 pub const WNV_API_MAJOR_VERSION_1: u32 = 1u32;
12 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
13 pub const WNV_API_MINOR_VERSION_0: u32 = 0u32;
14 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
15 pub type WNV_CA_NOTIFICATION_TYPE = i32;
16 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
17 pub const WnvCustomerAddressAdded: WNV_CA_NOTIFICATION_TYPE = 0i32;
18 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
19 pub const WnvCustomerAddressDeleted: WNV_CA_NOTIFICATION_TYPE = 1i32;
20 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
21 pub const WnvCustomerAddressMoved: WNV_CA_NOTIFICATION_TYPE = 2i32;
22 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
23 pub const WnvCustomerAddressMax: WNV_CA_NOTIFICATION_TYPE = 3i32;
24 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
25 pub type WNV_NOTIFICATION_TYPE = i32;
26 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
27 pub const WnvPolicyMismatchType: WNV_NOTIFICATION_TYPE = 0i32;
28 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
29 pub const WnvRedirectType: WNV_NOTIFICATION_TYPE = 1i32;
30 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
31 pub const WnvObjectChangeType: WNV_NOTIFICATION_TYPE = 2i32;
32 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
33 pub const WnvNotificationTypeMax: WNV_NOTIFICATION_TYPE = 3i32;
34 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
35 pub type WNV_OBJECT_TYPE = i32;
36 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
37 pub const WnvProviderAddressType: WNV_OBJECT_TYPE = 0i32;
38 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
39 pub const WnvCustomerAddressType: WNV_OBJECT_TYPE = 1i32;
40 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
41 pub const WnvObjectTypeMax: WNV_OBJECT_TYPE = 2i32;
42 #[repr(C)]
43 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`, `\"Win32_Networking_WinSock\"`*"]
44 #[cfg(feature = "Win32_Networking_WinSock")]
45 pub struct WNV_CUSTOMER_ADDRESS_CHANGE_PARAM {
46 pub MACAddress: super::super::Networking::WinSock::DL_EUI48,
47 pub CAFamily: u16,
48 pub CA: WNV_IP_ADDRESS,
49 pub VirtualSubnetId: u32,
50 pub PAFamily: u16,
51 pub PA: WNV_IP_ADDRESS,
52 pub NotificationReason: WNV_CA_NOTIFICATION_TYPE,
53 }
54 #[cfg(feature = "Win32_Networking_WinSock")]
55 impl ::core::marker::Copy for WNV_CUSTOMER_ADDRESS_CHANGE_PARAM {}
56 #[cfg(feature = "Win32_Networking_WinSock")]
57 impl ::core::clone::Clone for WNV_CUSTOMER_ADDRESS_CHANGE_PARAM {
58 fn clone(&self) -> Self {
59 *self
60 }
61 }
62 #[repr(C)]
63 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`, `\"Win32_Networking_WinSock\"`*"]
64 #[cfg(feature = "Win32_Networking_WinSock")]
65 pub struct WNV_IP_ADDRESS {
66 pub IP: WNV_IP_ADDRESS_0,
67 }
68 #[cfg(feature = "Win32_Networking_WinSock")]
69 impl ::core::marker::Copy for WNV_IP_ADDRESS {}
70 #[cfg(feature = "Win32_Networking_WinSock")]
71 impl ::core::clone::Clone for WNV_IP_ADDRESS {
72 fn clone(&self) -> Self {
73 *self
74 }
75 }
76 #[repr(C)]
77 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`, `\"Win32_Networking_WinSock\"`*"]
78 #[cfg(feature = "Win32_Networking_WinSock")]
79 pub union WNV_IP_ADDRESS_0 {
80 pub v4: super::super::Networking::WinSock::IN_ADDR,
81 pub v6: super::super::Networking::WinSock::IN6_ADDR,
82 pub Addr: [u8; 16],
83 }
84 #[cfg(feature = "Win32_Networking_WinSock")]
85 impl ::core::marker::Copy for WNV_IP_ADDRESS_0 {}
86 #[cfg(feature = "Win32_Networking_WinSock")]
87 impl ::core::clone::Clone for WNV_IP_ADDRESS_0 {
88 fn clone(&self) -> Self {
89 *self
90 }
91 }
92 #[repr(C)]
93 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
94 pub struct WNV_NOTIFICATION_PARAM {
95 pub Header: WNV_OBJECT_HEADER,
96 pub NotificationType: WNV_NOTIFICATION_TYPE,
97 pub PendingNotifications: u32,
98 pub Buffer: *mut u8,
99 }
100 impl ::core::marker::Copy for WNV_NOTIFICATION_PARAM {}
101 impl ::core::clone::Clone for WNV_NOTIFICATION_PARAM {
102 fn clone(&self) -> Self {
103 *self
104 }
105 }
106 #[repr(C)]
107 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`, `\"Win32_Networking_WinSock\"`*"]
108 #[cfg(feature = "Win32_Networking_WinSock")]
109 pub struct WNV_OBJECT_CHANGE_PARAM {
110 pub ObjectType: WNV_OBJECT_TYPE,
111 pub ObjectParam: WNV_OBJECT_CHANGE_PARAM_0,
112 }
113 #[cfg(feature = "Win32_Networking_WinSock")]
114 impl ::core::marker::Copy for WNV_OBJECT_CHANGE_PARAM {}
115 #[cfg(feature = "Win32_Networking_WinSock")]
116 impl ::core::clone::Clone for WNV_OBJECT_CHANGE_PARAM {
117 fn clone(&self) -> Self {
118 *self
119 }
120 }
121 #[repr(C)]
122 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`, `\"Win32_Networking_WinSock\"`*"]
123 #[cfg(feature = "Win32_Networking_WinSock")]
124 pub union WNV_OBJECT_CHANGE_PARAM_0 {
125 pub ProviderAddressChange: WNV_PROVIDER_ADDRESS_CHANGE_PARAM,
126 pub CustomerAddressChange: WNV_CUSTOMER_ADDRESS_CHANGE_PARAM,
127 }
128 #[cfg(feature = "Win32_Networking_WinSock")]
129 impl ::core::marker::Copy for WNV_OBJECT_CHANGE_PARAM_0 {}
130 #[cfg(feature = "Win32_Networking_WinSock")]
131 impl ::core::clone::Clone for WNV_OBJECT_CHANGE_PARAM_0 {
132 fn clone(&self) -> Self {
133 *self
134 }
135 }
136 #[repr(C)]
137 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`*"]
138 pub struct WNV_OBJECT_HEADER {
139 pub MajorVersion: u8,
140 pub MinorVersion: u8,
141 pub Size: u32,
142 }
143 impl ::core::marker::Copy for WNV_OBJECT_HEADER {}
144 impl ::core::clone::Clone for WNV_OBJECT_HEADER {
145 fn clone(&self) -> Self {
146 *self
147 }
148 }
149 #[repr(C)]
150 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`, `\"Win32_Networking_WinSock\"`*"]
151 #[cfg(feature = "Win32_Networking_WinSock")]
152 pub struct WNV_POLICY_MISMATCH_PARAM {
153 pub CAFamily: u16,
154 pub PAFamily: u16,
155 pub VirtualSubnetId: u32,
156 pub CA: WNV_IP_ADDRESS,
157 pub PA: WNV_IP_ADDRESS,
158 }
159 #[cfg(feature = "Win32_Networking_WinSock")]
160 impl ::core::marker::Copy for WNV_POLICY_MISMATCH_PARAM {}
161 #[cfg(feature = "Win32_Networking_WinSock")]
162 impl ::core::clone::Clone for WNV_POLICY_MISMATCH_PARAM {
163 fn clone(&self) -> Self {
164 *self
165 }
166 }
167 #[repr(C)]
168 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`, `\"Win32_Networking_WinSock\"`*"]
169 #[cfg(feature = "Win32_Networking_WinSock")]
170 pub struct WNV_PROVIDER_ADDRESS_CHANGE_PARAM {
171 pub PAFamily: u16,
172 pub PA: WNV_IP_ADDRESS,
173 pub AddressState: super::super::Networking::WinSock::NL_DAD_STATE,
174 }
175 #[cfg(feature = "Win32_Networking_WinSock")]
176 impl ::core::marker::Copy for WNV_PROVIDER_ADDRESS_CHANGE_PARAM {}
177 #[cfg(feature = "Win32_Networking_WinSock")]
178 impl ::core::clone::Clone for WNV_PROVIDER_ADDRESS_CHANGE_PARAM {
179 fn clone(&self) -> Self {
180 *self
181 }
182 }
183 #[repr(C)]
184 #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsNetworkVirtualization\"`, `\"Win32_Networking_WinSock\"`*"]
185 #[cfg(feature = "Win32_Networking_WinSock")]
186 pub struct WNV_REDIRECT_PARAM {
187 pub CAFamily: u16,
188 pub PAFamily: u16,
189 pub NewPAFamily: u16,
190 pub VirtualSubnetId: u32,
191 pub CA: WNV_IP_ADDRESS,
192 pub PA: WNV_IP_ADDRESS,
193 pub NewPA: WNV_IP_ADDRESS,
194 }
195 #[cfg(feature = "Win32_Networking_WinSock")]
196 impl ::core::marker::Copy for WNV_REDIRECT_PARAM {}
197 #[cfg(feature = "Win32_Networking_WinSock")]
198 impl ::core::clone::Clone for WNV_REDIRECT_PARAM {
199 fn clone(&self) -> Self {
200 *self
201 }
202 }