]> git.proxmox.com Git - rustc.git/blob - vendor/windows-sys/src/Windows/Win32/Devices/Usb/mod.rs
New upstream version 1.63.0+dfsg1
[rustc.git] / vendor / windows-sys / src / Windows / Win32 / Devices / Usb / mod.rs
1 #[link(name = "windows")]
2 extern "system" {
3 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
4 #[cfg(feature = "Win32_Foundation")]
5 pub fn WinUsb_AbortPipe(interfacehandle: *const ::core::ffi::c_void, pipeid: u8) -> super::super::Foundation::BOOL;
6 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"]
7 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))]
8 pub fn WinUsb_ControlTransfer(interfacehandle: *const ::core::ffi::c_void, setuppacket: WINUSB_SETUP_PACKET, buffer: *mut u8, bufferlength: u32, lengthtransferred: *mut u32, overlapped: *const super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL;
9 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
10 #[cfg(feature = "Win32_Foundation")]
11 pub fn WinUsb_FlushPipe(interfacehandle: *const ::core::ffi::c_void, pipeid: u8) -> super::super::Foundation::BOOL;
12 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
13 #[cfg(feature = "Win32_Foundation")]
14 pub fn WinUsb_Free(interfacehandle: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL;
15 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
16 #[cfg(feature = "Win32_Foundation")]
17 pub fn WinUsb_GetAdjustedFrameNumber(currentframenumber: *mut u32, timestamp: i64) -> super::super::Foundation::BOOL;
18 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
19 #[cfg(feature = "Win32_Foundation")]
20 pub fn WinUsb_GetAssociatedInterface(interfacehandle: *const ::core::ffi::c_void, associatedinterfaceindex: u8, associatedinterfacehandle: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL;
21 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
22 #[cfg(feature = "Win32_Foundation")]
23 pub fn WinUsb_GetCurrentAlternateSetting(interfacehandle: *const ::core::ffi::c_void, settingnumber: *mut u8) -> super::super::Foundation::BOOL;
24 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
25 #[cfg(feature = "Win32_Foundation")]
26 pub fn WinUsb_GetCurrentFrameNumber(interfacehandle: *const ::core::ffi::c_void, currentframenumber: *mut u32, timestamp: *mut i64) -> super::super::Foundation::BOOL;
27 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
28 #[cfg(feature = "Win32_Foundation")]
29 pub fn WinUsb_GetCurrentFrameNumberAndQpc(interfacehandle: *const ::core::ffi::c_void, frameqpcinfo: *const USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION) -> super::super::Foundation::BOOL;
30 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
31 #[cfg(feature = "Win32_Foundation")]
32 pub fn WinUsb_GetDescriptor(interfacehandle: *const ::core::ffi::c_void, descriptortype: u8, index: u8, languageid: u16, buffer: *mut u8, bufferlength: u32, lengthtransferred: *mut u32) -> super::super::Foundation::BOOL;
33 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"]
34 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))]
35 pub fn WinUsb_GetOverlappedResult(interfacehandle: *const ::core::ffi::c_void, lpoverlapped: *const super::super::System::IO::OVERLAPPED, lpnumberofbytestransferred: *mut u32, bwait: super::super::Foundation::BOOL) -> super::super::Foundation::BOOL;
36 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
37 #[cfg(feature = "Win32_Foundation")]
38 pub fn WinUsb_GetPipePolicy(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, policytype: u32, valuelength: *mut u32, value: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL;
39 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
40 #[cfg(feature = "Win32_Foundation")]
41 pub fn WinUsb_GetPowerPolicy(interfacehandle: *const ::core::ffi::c_void, policytype: u32, valuelength: *mut u32, value: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL;
42 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
43 #[cfg(feature = "Win32_Foundation")]
44 pub fn WinUsb_Initialize(devicehandle: super::super::Foundation::HANDLE, interfacehandle: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL;
45 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
46 pub fn WinUsb_ParseConfigurationDescriptor(configurationdescriptor: *const USB_CONFIGURATION_DESCRIPTOR, startposition: *const ::core::ffi::c_void, interfacenumber: i32, alternatesetting: i32, interfaceclass: i32, interfacesubclass: i32, interfaceprotocol: i32) -> *mut USB_INTERFACE_DESCRIPTOR;
47 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
48 pub fn WinUsb_ParseDescriptors(descriptorbuffer: *const ::core::ffi::c_void, totallength: u32, startposition: *const ::core::ffi::c_void, descriptortype: i32) -> *mut USB_COMMON_DESCRIPTOR;
49 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
50 #[cfg(feature = "Win32_Foundation")]
51 pub fn WinUsb_QueryDeviceInformation(interfacehandle: *const ::core::ffi::c_void, informationtype: u32, bufferlength: *mut u32, buffer: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL;
52 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
53 #[cfg(feature = "Win32_Foundation")]
54 pub fn WinUsb_QueryInterfaceSettings(interfacehandle: *const ::core::ffi::c_void, alternateinterfacenumber: u8, usbaltinterfacedescriptor: *mut USB_INTERFACE_DESCRIPTOR) -> super::super::Foundation::BOOL;
55 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
56 #[cfg(feature = "Win32_Foundation")]
57 pub fn WinUsb_QueryPipe(interfacehandle: *const ::core::ffi::c_void, alternateinterfacenumber: u8, pipeindex: u8, pipeinformation: *mut WINUSB_PIPE_INFORMATION) -> super::super::Foundation::BOOL;
58 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
59 #[cfg(feature = "Win32_Foundation")]
60 pub fn WinUsb_QueryPipeEx(interfacehandle: *const ::core::ffi::c_void, alternatesettingnumber: u8, pipeindex: u8, pipeinformationex: *mut WINUSB_PIPE_INFORMATION_EX) -> super::super::Foundation::BOOL;
61 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"]
62 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))]
63 pub fn WinUsb_ReadIsochPipe(bufferhandle: *const ::core::ffi::c_void, offset: u32, length: u32, framenumber: *mut u32, numberofpackets: u32, isopacketdescriptors: *mut USBD_ISO_PACKET_DESCRIPTOR, overlapped: *const super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL;
64 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"]
65 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))]
66 pub fn WinUsb_ReadIsochPipeAsap(bufferhandle: *const ::core::ffi::c_void, offset: u32, length: u32, continuestream: super::super::Foundation::BOOL, numberofpackets: u32, isopacketdescriptors: *mut USBD_ISO_PACKET_DESCRIPTOR, overlapped: *const super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL;
67 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"]
68 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))]
69 pub fn WinUsb_ReadPipe(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, buffer: *mut u8, bufferlength: u32, lengthtransferred: *mut u32, overlapped: *const super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL;
70 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
71 #[cfg(feature = "Win32_Foundation")]
72 pub fn WinUsb_RegisterIsochBuffer(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, buffer: *mut u8, bufferlength: u32, isochbufferhandle: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL;
73 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
74 #[cfg(feature = "Win32_Foundation")]
75 pub fn WinUsb_ResetPipe(interfacehandle: *const ::core::ffi::c_void, pipeid: u8) -> super::super::Foundation::BOOL;
76 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
77 #[cfg(feature = "Win32_Foundation")]
78 pub fn WinUsb_SetCurrentAlternateSetting(interfacehandle: *const ::core::ffi::c_void, settingnumber: u8) -> super::super::Foundation::BOOL;
79 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
80 #[cfg(feature = "Win32_Foundation")]
81 pub fn WinUsb_SetPipePolicy(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, policytype: u32, valuelength: u32, value: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL;
82 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
83 #[cfg(feature = "Win32_Foundation")]
84 pub fn WinUsb_SetPowerPolicy(interfacehandle: *const ::core::ffi::c_void, policytype: u32, valuelength: u32, value: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL;
85 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
86 #[cfg(feature = "Win32_Foundation")]
87 pub fn WinUsb_StartTrackingForTimeSync(interfacehandle: *const ::core::ffi::c_void, starttrackinginfo: *const USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION) -> super::super::Foundation::BOOL;
88 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
89 #[cfg(feature = "Win32_Foundation")]
90 pub fn WinUsb_StopTrackingForTimeSync(interfacehandle: *const ::core::ffi::c_void, stoptrackinginfo: *const USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION) -> super::super::Foundation::BOOL;
91 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
92 #[cfg(feature = "Win32_Foundation")]
93 pub fn WinUsb_UnregisterIsochBuffer(isochbufferhandle: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL;
94 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"]
95 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))]
96 pub fn WinUsb_WriteIsochPipe(bufferhandle: *const ::core::ffi::c_void, offset: u32, length: u32, framenumber: *mut u32, overlapped: *const super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL;
97 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"]
98 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))]
99 pub fn WinUsb_WriteIsochPipeAsap(bufferhandle: *const ::core::ffi::c_void, offset: u32, length: u32, continuestream: super::super::Foundation::BOOL, overlapped: *const super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL;
100 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"]
101 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))]
102 pub fn WinUsb_WritePipe(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, buffer: *const u8, bufferlength: u32, lengthtransferred: *mut u32, overlapped: *const super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL;
103 }
104 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
105 pub const ALLOW_PARTIAL_READS: u32 = 5u32;
106 #[repr(C)]
107 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
108 pub struct ALTERNATE_INTERFACE {
109 pub InterfaceNumber: u16,
110 pub AlternateInterfaceNumber: u16,
111 }
112 impl ::core::marker::Copy for ALTERNATE_INTERFACE {}
113 impl ::core::clone::Clone for ALTERNATE_INTERFACE {
114 fn clone(&self) -> Self {
115 *self
116 }
117 }
118 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
119 pub const AUTO_CLEAR_STALL: u32 = 2u32;
120 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
121 pub const AUTO_FLUSH: u32 = 6u32;
122 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
123 pub const AUTO_SUSPEND: u32 = 129u32;
124 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
125 pub const BMREQUEST_CLASS: u32 = 1u32;
126 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
127 pub const BMREQUEST_DEVICE_TO_HOST: u32 = 1u32;
128 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
129 pub const BMREQUEST_HOST_TO_DEVICE: u32 = 0u32;
130 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
131 pub const BMREQUEST_STANDARD: u32 = 0u32;
132 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
133 pub const BMREQUEST_TO_DEVICE: u32 = 0u32;
134 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
135 pub const BMREQUEST_TO_ENDPOINT: u32 = 2u32;
136 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
137 pub const BMREQUEST_TO_INTERFACE: u32 = 1u32;
138 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
139 pub const BMREQUEST_TO_OTHER: u32 = 3u32;
140 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
141 pub const BMREQUEST_VENDOR: u32 = 2u32;
142 #[repr(C)]
143 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
144 pub union BM_REQUEST_TYPE {
145 pub s: BM_REQUEST_TYPE_0,
146 pub B: u8,
147 }
148 impl ::core::marker::Copy for BM_REQUEST_TYPE {}
149 impl ::core::clone::Clone for BM_REQUEST_TYPE {
150 fn clone(&self) -> Self {
151 *self
152 }
153 }
154 #[repr(C)]
155 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
156 pub struct BM_REQUEST_TYPE_0 {
157 pub _bitfield: u8,
158 }
159 impl ::core::marker::Copy for BM_REQUEST_TYPE_0 {}
160 impl ::core::clone::Clone for BM_REQUEST_TYPE_0 {
161 fn clone(&self) -> Self {
162 *self
163 }
164 }
165 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
166 pub const BULKIN_FLAG: u32 = 128u32;
167 #[repr(C)]
168 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
169 pub struct CHANNEL_INFO {
170 pub EventChannelSize: u32,
171 pub uReadDataAlignment: u32,
172 pub uWriteDataAlignment: u32,
173 }
174 impl ::core::marker::Copy for CHANNEL_INFO {}
175 impl ::core::clone::Clone for CHANNEL_INFO {
176 fn clone(&self) -> Self {
177 *self
178 }
179 }
180 #[repr(C)]
181 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
182 pub struct DEVICE_DESCRIPTOR {
183 pub usVendorId: u16,
184 pub usProductId: u16,
185 pub usBcdDevice: u16,
186 pub usLanguageId: u16,
187 }
188 impl ::core::marker::Copy for DEVICE_DESCRIPTOR {}
189 impl ::core::clone::Clone for DEVICE_DESCRIPTOR {
190 fn clone(&self) -> Self {
191 *self
192 }
193 }
194 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
195 pub const DEVICE_SPEED: u32 = 1u32;
196 #[repr(C)]
197 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
198 pub struct DRV_VERSION {
199 pub major: u32,
200 pub minor: u32,
201 pub internal: u32,
202 }
203 impl ::core::marker::Copy for DRV_VERSION {}
204 impl ::core::clone::Clone for DRV_VERSION {
205 fn clone(&self) -> Self {
206 *self
207 }
208 }
209 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
210 pub const FILE_DEVICE_USB: u32 = 34u32;
211 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
212 pub const FILE_DEVICE_USB_SCAN: u32 = 32768u32;
213 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
214 pub const FullSpeed: u32 = 2u32;
215 pub const GUID_DEVINTERFACE_USB_BILLBOARD: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 1587206895, data2: 63609, data3: 18239, data4: [184, 7, 78, 94, 167, 125, 27, 28] };
216 pub const GUID_DEVINTERFACE_USB_DEVICE: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 2782707472, data2: 25904, data3: 4562, data4: [144, 31, 0, 192, 79, 185, 81, 237] };
217 pub const GUID_DEVINTERFACE_USB_HOST_CONTROLLER: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 985624365, data2: 29124, data3: 17962, data4: [138, 146, 30, 104, 97, 230, 175, 39] };
218 pub const GUID_DEVINTERFACE_USB_HUB: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 4052356744, data2: 49932, data3: 4560, data4: [136, 21, 0, 160, 201, 6, 190, 216] };
219 pub const GUID_USB_MSOS20_PLATFORM_CAPABILITY_ID: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 3638386911, data2: 17801, data3: 19655, data4: [156, 210, 101, 157, 158, 100, 138, 159] };
220 pub const GUID_USB_PERFORMANCE_TRACING: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 3588126630, data2: 27369, data3: 16988, data4: [177, 226, 245, 97, 95, 211, 72, 169] };
221 pub const GUID_USB_TRANSFER_TRACING: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 1746843818, data2: 16445, data3: 17708, data4: [159, 138, 240, 97, 111, 172, 149, 64] };
222 pub const GUID_USB_WMI_DEVICE_PERF_INFO: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 1723968060, data2: 18847, data3: 18848, data4: [169, 165, 97, 226, 53, 159, 100, 7] };
223 pub const GUID_USB_WMI_NODE_INFO: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 2618790743, data2: 56442, data3: 20289, data4: [182, 107, 50, 59, 157, 220, 181, 177] };
224 pub const GUID_USB_WMI_STD_DATA: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 1315060512, data2: 51988, data3: 4561, data4: [179, 49, 0, 160, 201, 89, 187, 210] };
225 pub const GUID_USB_WMI_STD_NOTIFICATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 1315060512, data2: 51988, data3: 4561, data4: [179, 49, 0, 160, 201, 89, 187, 210] };
226 pub const GUID_USB_WMI_SURPRISE_REMOVAL_NOTIFICATION: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 2612787249, data2: 41714, data3: 17332, data4: [150, 209, 134, 148, 75, 89, 20, 179] };
227 pub const GUID_USB_WMI_TRACING: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 979470363, data2: 46310, data3: 19449, data4: [174, 15, 60, 216, 243, 148, 229, 47] };
228 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
229 pub const HCD_DIAGNOSTIC_MODE_OFF: u32 = 257u32;
230 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
231 pub const HCD_DIAGNOSTIC_MODE_ON: u32 = 256u32;
232 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
233 pub const HCD_DISABLE_PORT: u32 = 268u32;
234 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
235 pub const HCD_ENABLE_PORT: u32 = 269u32;
236 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
237 pub const HCD_GET_DRIVERKEY_NAME: u32 = 265u32;
238 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
239 pub const HCD_GET_ROOT_HUB_NAME: u32 = 258u32;
240 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
241 pub const HCD_GET_STATS_1: u32 = 255u32;
242 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
243 pub const HCD_GET_STATS_2: u32 = 266u32;
244 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
245 pub const HCD_TRACE_READ_REQUEST: u32 = 275u32;
246 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
247 pub const HCD_USER_REQUEST: u32 = 270u32;
248 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
249 pub const HighSpeed: u32 = 3u32;
250 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
251 pub const IGNORE_SHORT_PACKETS: u32 = 4u32;
252 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
253 pub const IOCTL_ABORT_PIPE: u32 = 2147491844u32;
254 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
255 pub const IOCTL_CANCEL_IO: u32 = 2147491844u32;
256 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
257 pub const IOCTL_GENERICUSBFN_ACTIVATE_USB_BUS: u32 = 2277420u32;
258 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
259 pub const IOCTL_GENERICUSBFN_BUS_EVENT_NOTIFICATION: u32 = 2277430u32;
260 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
261 pub const IOCTL_GENERICUSBFN_CONTROL_STATUS_HANDSHAKE_IN: u32 = 2277400u32;
262 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
263 pub const IOCTL_GENERICUSBFN_CONTROL_STATUS_HANDSHAKE_OUT: u32 = 2277404u32;
264 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
265 pub const IOCTL_GENERICUSBFN_DEACTIVATE_USB_BUS: u32 = 2277424u32;
266 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
267 pub const IOCTL_GENERICUSBFN_GET_CLASS_INFO: u32 = 2277410u32;
268 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
269 pub const IOCTL_GENERICUSBFN_GET_CLASS_INFO_EX: u32 = 2277434u32;
270 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
271 pub const IOCTL_GENERICUSBFN_GET_INTERFACE_DESCRIPTOR_SET: u32 = 2277438u32;
272 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
273 pub const IOCTL_GENERICUSBFN_GET_PIPE_STATE: u32 = 2277414u32;
274 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
275 pub const IOCTL_GENERICUSBFN_REGISTER_USB_STRING: u32 = 2277441u32;
276 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
277 pub const IOCTL_GENERICUSBFN_SET_PIPE_STATE: u32 = 2277417u32;
278 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
279 pub const IOCTL_GENERICUSBFN_TRANSFER_IN: u32 = 2277389u32;
280 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
281 pub const IOCTL_GENERICUSBFN_TRANSFER_IN_APPEND_ZERO_PKT: u32 = 2277393u32;
282 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
283 pub const IOCTL_GENERICUSBFN_TRANSFER_OUT: u32 = 2277398u32;
284 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
285 pub const IOCTL_GET_CHANNEL_ALIGN_RQST: u32 = 2147491860u32;
286 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
287 pub const IOCTL_GET_DEVICE_DESCRIPTOR: u32 = 2147491864u32;
288 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
289 pub const IOCTL_GET_HCD_DRIVERKEY_NAME: u32 = 2229284u32;
290 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
291 pub const IOCTL_GET_PIPE_CONFIGURATION: u32 = 2147491880u32;
292 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
293 pub const IOCTL_GET_USB_DESCRIPTOR: u32 = 2147491872u32;
294 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
295 pub const IOCTL_GET_VERSION: u32 = 2147491840u32;
296 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
297 pub const IOCTL_INDEX: u32 = 2048u32;
298 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
299 pub const IOCTL_INTERNAL_USB_CYCLE_PORT: u32 = 2228255u32;
300 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
301 pub const IOCTL_INTERNAL_USB_ENABLE_PORT: u32 = 2228247u32;
302 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
303 pub const IOCTL_INTERNAL_USB_FAIL_GET_STATUS_FROM_DEVICE: u32 = 2229347u32;
304 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
305 pub const IOCTL_INTERNAL_USB_GET_BUSGUID_INFO: u32 = 2229288u32;
306 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
307 pub const IOCTL_INTERNAL_USB_GET_BUS_INFO: u32 = 2229280u32;
308 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
309 pub const IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME: u32 = 2229284u32;
310 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
311 pub const IOCTL_INTERNAL_USB_GET_DEVICE_CONFIG_INFO: u32 = 2229327u32;
312 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
313 pub const IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE: u32 = 2229299u32;
314 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
315 pub const IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE_EX: u32 = 2229303u32;
316 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
317 pub const IOCTL_INTERNAL_USB_GET_HUB_COUNT: u32 = 2228251u32;
318 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
319 pub const IOCTL_INTERNAL_USB_GET_HUB_NAME: u32 = 2228256u32;
320 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
321 pub const IOCTL_INTERNAL_USB_GET_PARENT_HUB_INFO: u32 = 2229292u32;
322 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
323 pub const IOCTL_INTERNAL_USB_GET_PORT_STATUS: u32 = 2228243u32;
324 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
325 pub const IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO: u32 = 2228239u32;
326 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
327 pub const IOCTL_INTERNAL_USB_GET_TOPOLOGY_ADDRESS: u32 = 2229311u32;
328 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
329 pub const IOCTL_INTERNAL_USB_GET_TT_DEVICE_HANDLE: u32 = 2229307u32;
330 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
331 pub const IOCTL_INTERNAL_USB_NOTIFY_IDLE_READY: u32 = 2229315u32;
332 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
333 pub const IOCTL_INTERNAL_USB_RECORD_FAILURE: u32 = 2228267u32;
334 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
335 pub const IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE: u32 = 4784131u32;
336 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
337 pub const IOCTL_INTERNAL_USB_REQUEST_REMOTE_WAKE_NOTIFICATION: u32 = 4784139u32;
338 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
339 pub const IOCTL_INTERNAL_USB_REQ_GLOBAL_RESUME: u32 = 2229323u32;
340 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
341 pub const IOCTL_INTERNAL_USB_REQ_GLOBAL_SUSPEND: u32 = 2229319u32;
342 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
343 pub const IOCTL_INTERNAL_USB_RESET_PORT: u32 = 2228231u32;
344 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
345 pub const IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION: u32 = 2228263u32;
346 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
347 pub const IOCTL_INTERNAL_USB_SUBMIT_URB: u32 = 2228227u32;
348 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
349 pub const IOCTL_INTERNAL_USB_UNREGISTER_COMPOSITE_DEVICE: u32 = 4784135u32;
350 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
351 pub const IOCTL_READ_REGISTERS: u32 = 2147491852u32;
352 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
353 pub const IOCTL_RESET_PIPE: u32 = 2147491868u32;
354 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
355 pub const IOCTL_SEND_USB_REQUEST: u32 = 2147491876u32;
356 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
357 pub const IOCTL_SET_TIMEOUT: u32 = 2147491884u32;
358 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
359 pub const IOCTL_USB_DIAGNOSTIC_MODE_OFF: u32 = 2229252u32;
360 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
361 pub const IOCTL_USB_DIAGNOSTIC_MODE_ON: u32 = 2229248u32;
362 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
363 pub const IOCTL_USB_DIAG_IGNORE_HUBS_OFF: u32 = 2229276u32;
364 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
365 pub const IOCTL_USB_DIAG_IGNORE_HUBS_ON: u32 = 2229272u32;
366 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
367 pub const IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION: u32 = 2229264u32;
368 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
369 pub const IOCTL_USB_GET_DEVICE_CHARACTERISTICS: u32 = 2229376u32;
370 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
371 pub const IOCTL_USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC: u32 = 2229368u32;
372 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
373 pub const IOCTL_USB_GET_HUB_CAPABILITIES: u32 = 2229308u32;
374 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
375 pub const IOCTL_USB_GET_HUB_CAPABILITIES_EX: u32 = 2229328u32;
376 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
377 pub const IOCTL_USB_GET_HUB_INFORMATION_EX: u32 = 2229332u32;
378 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
379 pub const IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES: u32 = 2229312u32;
380 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
381 pub const IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME: u32 = 2229280u32;
382 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
383 pub const IOCTL_USB_GET_NODE_CONNECTION_INFORMATION: u32 = 2229260u32;
384 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
385 pub const IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX: u32 = 2229320u32;
386 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
387 pub const IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2: u32 = 2229340u32;
388 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
389 pub const IOCTL_USB_GET_NODE_CONNECTION_NAME: u32 = 2229268u32;
390 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
391 pub const IOCTL_USB_GET_NODE_INFORMATION: u32 = 2229256u32;
392 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
393 pub const IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES: u32 = 2229336u32;
394 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
395 pub const IOCTL_USB_GET_ROOT_HUB_NAME: u32 = 2229256u32;
396 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
397 pub const IOCTL_USB_GET_TRANSPORT_CHARACTERISTICS: u32 = 2229348u32;
398 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
399 pub const IOCTL_USB_HCD_DISABLE_PORT: u32 = 2229296u32;
400 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
401 pub const IOCTL_USB_HCD_ENABLE_PORT: u32 = 2229300u32;
402 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
403 pub const IOCTL_USB_HCD_GET_STATS_1: u32 = 2229244u32;
404 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
405 pub const IOCTL_USB_HCD_GET_STATS_2: u32 = 2229288u32;
406 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
407 pub const IOCTL_USB_HUB_CYCLE_PORT: u32 = 2229316u32;
408 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
409 pub const IOCTL_USB_NOTIFY_ON_TRANSPORT_CHARACTERISTICS_CHANGE: u32 = 2229356u32;
410 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
411 pub const IOCTL_USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE: u32 = 2229352u32;
412 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
413 pub const IOCTL_USB_RESET_HUB: u32 = 2229324u32;
414 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
415 pub const IOCTL_USB_START_TRACKING_FOR_TIME_SYNC: u32 = 2229364u32;
416 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
417 pub const IOCTL_USB_STOP_TRACKING_FOR_TIME_SYNC: u32 = 2229372u32;
418 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
419 pub const IOCTL_USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE: u32 = 2229360u32;
420 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
421 pub const IOCTL_WAIT_ON_DEVICE_EVENT: u32 = 2147491848u32;
422 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
423 pub const IOCTL_WRITE_REGISTERS: u32 = 2147491856u32;
424 #[repr(C)]
425 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
426 pub struct IO_BLOCK {
427 pub uOffset: u32,
428 pub uLength: u32,
429 pub pbyData: *mut u8,
430 pub uIndex: u32,
431 }
432 impl ::core::marker::Copy for IO_BLOCK {}
433 impl ::core::clone::Clone for IO_BLOCK {
434 fn clone(&self) -> Self {
435 *self
436 }
437 }
438 #[repr(C)]
439 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
440 pub struct IO_BLOCK_EX {
441 pub uOffset: u32,
442 pub uLength: u32,
443 pub pbyData: *mut u8,
444 pub uIndex: u32,
445 pub bRequest: u8,
446 pub bmRequestType: u8,
447 pub fTransferDirectionIn: u8,
448 }
449 impl ::core::marker::Copy for IO_BLOCK_EX {}
450 impl ::core::clone::Clone for IO_BLOCK_EX {
451 fn clone(&self) -> Self {
452 *self
453 }
454 }
455 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
456 pub const KREGMANUSBFNENUMPATH: &str = "\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\ManufacturingMode\\Current\\USBFN\\";
457 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
458 pub const KREGUSBFNENUMPATH: &str = "\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\USBFN\\";
459 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
460 pub const LowSpeed: u32 = 1u32;
461 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
462 pub const MAXIMUM_TRANSFER_SIZE: u32 = 8u32;
463 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
464 pub const MAXIMUM_USB_STRING_LENGTH: u32 = 255u32;
465 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
466 pub const MAX_ALTERNATE_NAME_LENGTH: u32 = 40u32;
467 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
468 pub const MAX_ASSOCIATION_NAME_LENGTH: u32 = 40u32;
469 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
470 pub const MAX_CONFIGURATION_NAME_LENGTH: u32 = 40u32;
471 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
472 pub const MAX_INTERFACE_NAME_LENGTH: u32 = 40u32;
473 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
474 pub const MAX_NUM_PIPES: u32 = 8u32;
475 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
476 pub const MAX_NUM_USBFN_ENDPOINTS: u32 = 15u32;
477 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
478 pub const MAX_SUPPORTED_CONFIGURATIONS: u32 = 12u32;
479 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
480 pub const MAX_USB_STRING_LENGTH: u32 = 255u32;
481 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
482 pub const MS_GENRE_DESCRIPTOR_INDEX: u32 = 1u32;
483 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
484 pub const MS_OS_FLAGS_CONTAINERID: u32 = 2u32;
485 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
486 pub const MS_OS_STRING_SIGNATURE: &str = "MSFT100";
487 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
488 pub const MS_POWER_DESCRIPTOR_INDEX: u32 = 2u32;
489 #[repr(C)]
490 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
491 pub struct OS_STRING {
492 pub bLength: u8,
493 pub bDescriptorType: u8,
494 pub MicrosoftString: [u16; 7],
495 pub bVendorCode: u8,
496 pub Anonymous: OS_STRING_0,
497 }
498 impl ::core::marker::Copy for OS_STRING {}
499 impl ::core::clone::Clone for OS_STRING {
500 fn clone(&self) -> Self {
501 *self
502 }
503 }
504 #[repr(C)]
505 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
506 pub union OS_STRING_0 {
507 pub bPad: u8,
508 pub bFlags: u8,
509 }
510 impl ::core::marker::Copy for OS_STRING_0 {}
511 impl ::core::clone::Clone for OS_STRING_0 {
512 fn clone(&self) -> Self {
513 *self
514 }
515 }
516 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
517 pub const OS_STRING_DESCRIPTOR_INDEX: u32 = 238u32;
518 #[repr(C, packed(1))]
519 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
520 pub struct PACKET_PARAMETERS {
521 pub DeviceAddress: u8,
522 pub EndpointAddress: u8,
523 pub MaximumPacketSize: u16,
524 pub Timeout: u32,
525 pub Flags: u32,
526 pub DataLength: u32,
527 pub HubDeviceAddress: u16,
528 pub PortTTNumber: u16,
529 pub ErrorCount: u8,
530 pub Pad: [u8; 3],
531 pub UsbdStatusCode: i32,
532 pub Data: [u8; 4],
533 }
534 impl ::core::marker::Copy for PACKET_PARAMETERS {}
535 impl ::core::clone::Clone for PACKET_PARAMETERS {
536 fn clone(&self) -> Self {
537 *self
538 }
539 }
540 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
541 pub const PIPE_TRANSFER_TIMEOUT: u32 = 3u32;
542 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
543 pub type PIPE_TYPE = i32;
544 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
545 pub const EVENT_PIPE: PIPE_TYPE = 0i32;
546 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
547 pub const READ_DATA_PIPE: PIPE_TYPE = 1i32;
548 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
549 pub const WRITE_DATA_PIPE: PIPE_TYPE = 2i32;
550 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
551 pub const ALL_PIPE: PIPE_TYPE = 3i32;
552 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
553 pub const PORT_LINK_STATE_COMPLIANCE_MODE: u32 = 10u32;
554 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
555 pub const PORT_LINK_STATE_DISABLED: u32 = 4u32;
556 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
557 pub const PORT_LINK_STATE_HOT_RESET: u32 = 9u32;
558 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
559 pub const PORT_LINK_STATE_INACTIVE: u32 = 6u32;
560 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
561 pub const PORT_LINK_STATE_LOOPBACK: u32 = 11u32;
562 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
563 pub const PORT_LINK_STATE_POLLING: u32 = 7u32;
564 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
565 pub const PORT_LINK_STATE_RECOVERY: u32 = 8u32;
566 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
567 pub const PORT_LINK_STATE_RX_DETECT: u32 = 5u32;
568 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
569 pub const PORT_LINK_STATE_TEST_MODE: u32 = 11u32;
570 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
571 pub const PORT_LINK_STATE_U0: u32 = 0u32;
572 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
573 pub const PORT_LINK_STATE_U1: u32 = 1u32;
574 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
575 pub const PORT_LINK_STATE_U2: u32 = 2u32;
576 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
577 pub const PORT_LINK_STATE_U3: u32 = 3u32;
578 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
579 pub const RAW_IO: u32 = 7u32;
580 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
581 pub type RAW_PIPE_TYPE = i32;
582 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
583 pub const USBSCAN_PIPE_CONTROL: RAW_PIPE_TYPE = 0i32;
584 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
585 pub const USBSCAN_PIPE_ISOCHRONOUS: RAW_PIPE_TYPE = 1i32;
586 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
587 pub const USBSCAN_PIPE_BULK: RAW_PIPE_TYPE = 2i32;
588 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
589 pub const USBSCAN_PIPE_INTERRUPT: RAW_PIPE_TYPE = 3i32;
590 #[repr(C, packed(1))]
591 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
592 pub struct RAW_RESET_PORT_PARAMETERS {
593 pub PortNumber: u16,
594 pub PortStatus: u16,
595 }
596 impl ::core::marker::Copy for RAW_RESET_PORT_PARAMETERS {}
597 impl ::core::clone::Clone for RAW_RESET_PORT_PARAMETERS {
598 fn clone(&self) -> Self {
599 *self
600 }
601 }
602 #[repr(C, packed(1))]
603 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
604 pub struct RAW_ROOTPORT_FEATURE {
605 pub PortNumber: u16,
606 pub PortFeature: u16,
607 pub PortStatus: u16,
608 }
609 impl ::core::marker::Copy for RAW_ROOTPORT_FEATURE {}
610 impl ::core::clone::Clone for RAW_ROOTPORT_FEATURE {
611 fn clone(&self) -> Self {
612 *self
613 }
614 }
615 #[repr(C, packed(1))]
616 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
617 pub struct RAW_ROOTPORT_PARAMETERS {
618 pub PortNumber: u16,
619 pub PortStatus: u16,
620 }
621 impl ::core::marker::Copy for RAW_ROOTPORT_PARAMETERS {}
622 impl ::core::clone::Clone for RAW_ROOTPORT_PARAMETERS {
623 fn clone(&self) -> Self {
624 *self
625 }
626 }
627 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
628 pub const RESET_PIPE_ON_RESUME: u32 = 9u32;
629 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
630 pub const SHORT_PACKET_TERMINATE: u32 = 1u32;
631 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
632 pub const SUSPEND_DELAY: u32 = 131u32;
633 #[repr(C)]
634 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
635 pub struct URB {
636 pub Anonymous: URB_0,
637 }
638 impl ::core::marker::Copy for URB {}
639 impl ::core::clone::Clone for URB {
640 fn clone(&self) -> Self {
641 *self
642 }
643 }
644 #[repr(C)]
645 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
646 pub union URB_0 {
647 pub UrbHeader: _URB_HEADER,
648 pub UrbSelectInterface: _URB_SELECT_INTERFACE,
649 pub UrbSelectConfiguration: _URB_SELECT_CONFIGURATION,
650 pub UrbPipeRequest: _URB_PIPE_REQUEST,
651 pub UrbFrameLengthControl: _URB_FRAME_LENGTH_CONTROL,
652 pub UrbGetFrameLength: _URB_GET_FRAME_LENGTH,
653 pub UrbSetFrameLength: _URB_SET_FRAME_LENGTH,
654 pub UrbGetCurrentFrameNumber: _URB_GET_CURRENT_FRAME_NUMBER,
655 pub UrbControlTransfer: _URB_CONTROL_TRANSFER,
656 pub UrbControlTransferEx: _URB_CONTROL_TRANSFER_EX,
657 pub UrbBulkOrInterruptTransfer: _URB_BULK_OR_INTERRUPT_TRANSFER,
658 pub UrbIsochronousTransfer: _URB_ISOCH_TRANSFER,
659 pub UrbControlDescriptorRequest: _URB_CONTROL_DESCRIPTOR_REQUEST,
660 pub UrbControlGetStatusRequest: _URB_CONTROL_GET_STATUS_REQUEST,
661 pub UrbControlFeatureRequest: _URB_CONTROL_FEATURE_REQUEST,
662 pub UrbControlVendorClassRequest: _URB_CONTROL_VENDOR_OR_CLASS_REQUEST,
663 pub UrbControlGetInterfaceRequest: _URB_CONTROL_GET_INTERFACE_REQUEST,
664 pub UrbControlGetConfigurationRequest: _URB_CONTROL_GET_CONFIGURATION_REQUEST,
665 pub UrbOSFeatureDescriptorRequest: _URB_OS_FEATURE_DESCRIPTOR_REQUEST,
666 pub UrbOpenStaticStreams: _URB_OPEN_STATIC_STREAMS,
667 pub UrbGetIsochPipeTransferPathDelays: _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS,
668 }
669 impl ::core::marker::Copy for URB_0 {}
670 impl ::core::clone::Clone for URB_0 {
671 fn clone(&self) -> Self {
672 *self
673 }
674 }
675 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
676 pub const URB_FUNCTION_ABORT_PIPE: u32 = 2u32;
677 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
678 pub const URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER: u32 = 9u32;
679 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
680 pub const URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER_USING_CHAINED_MDL: u32 = 55u32;
681 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
682 pub const URB_FUNCTION_CLASS_DEVICE: u32 = 26u32;
683 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
684 pub const URB_FUNCTION_CLASS_ENDPOINT: u32 = 28u32;
685 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
686 pub const URB_FUNCTION_CLASS_INTERFACE: u32 = 27u32;
687 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
688 pub const URB_FUNCTION_CLASS_OTHER: u32 = 31u32;
689 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
690 pub const URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE: u32 = 16u32;
691 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
692 pub const URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT: u32 = 18u32;
693 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
694 pub const URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE: u32 = 17u32;
695 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
696 pub const URB_FUNCTION_CLEAR_FEATURE_TO_OTHER: u32 = 34u32;
697 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
698 pub const URB_FUNCTION_CLOSE_STATIC_STREAMS: u32 = 54u32;
699 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
700 pub const URB_FUNCTION_CONTROL_TRANSFER: u32 = 8u32;
701 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
702 pub const URB_FUNCTION_CONTROL_TRANSFER_EX: u32 = 50u32;
703 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
704 pub const URB_FUNCTION_GET_CONFIGURATION: u32 = 38u32;
705 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
706 pub const URB_FUNCTION_GET_CURRENT_FRAME_NUMBER: u32 = 7u32;
707 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
708 pub const URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE: u32 = 11u32;
709 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
710 pub const URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT: u32 = 36u32;
711 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
712 pub const URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE: u32 = 40u32;
713 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
714 pub const URB_FUNCTION_GET_FRAME_LENGTH: u32 = 5u32;
715 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
716 pub const URB_FUNCTION_GET_INTERFACE: u32 = 39u32;
717 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
718 pub const URB_FUNCTION_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS: u32 = 61u32;
719 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
720 pub const URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR: u32 = 42u32;
721 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
722 pub const URB_FUNCTION_GET_STATUS_FROM_DEVICE: u32 = 19u32;
723 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
724 pub const URB_FUNCTION_GET_STATUS_FROM_ENDPOINT: u32 = 21u32;
725 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
726 pub const URB_FUNCTION_GET_STATUS_FROM_INTERFACE: u32 = 20u32;
727 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
728 pub const URB_FUNCTION_GET_STATUS_FROM_OTHER: u32 = 33u32;
729 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
730 pub const URB_FUNCTION_ISOCH_TRANSFER: u32 = 10u32;
731 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
732 pub const URB_FUNCTION_ISOCH_TRANSFER_USING_CHAINED_MDL: u32 = 56u32;
733 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
734 pub const URB_FUNCTION_OPEN_STATIC_STREAMS: u32 = 53u32;
735 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
736 pub const URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL: u32 = 4u32;
737 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
738 pub const URB_FUNCTION_RESERVED_0X0016: u32 = 22u32;
739 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
740 pub const URB_FUNCTION_RESERVE_0X001D: u32 = 29u32;
741 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
742 pub const URB_FUNCTION_RESERVE_0X002B: u32 = 43u32;
743 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
744 pub const URB_FUNCTION_RESERVE_0X002C: u32 = 44u32;
745 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
746 pub const URB_FUNCTION_RESERVE_0X002D: u32 = 45u32;
747 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
748 pub const URB_FUNCTION_RESERVE_0X002E: u32 = 46u32;
749 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
750 pub const URB_FUNCTION_RESERVE_0X002F: u32 = 47u32;
751 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
752 pub const URB_FUNCTION_RESERVE_0X0033: u32 = 51u32;
753 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
754 pub const URB_FUNCTION_RESERVE_0X0034: u32 = 52u32;
755 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
756 pub const URB_FUNCTION_RESET_PIPE: u32 = 30u32;
757 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
758 pub const URB_FUNCTION_SELECT_CONFIGURATION: u32 = 0u32;
759 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
760 pub const URB_FUNCTION_SELECT_INTERFACE: u32 = 1u32;
761 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
762 pub const URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE: u32 = 12u32;
763 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
764 pub const URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT: u32 = 37u32;
765 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
766 pub const URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE: u32 = 41u32;
767 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
768 pub const URB_FUNCTION_SET_FEATURE_TO_DEVICE: u32 = 13u32;
769 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
770 pub const URB_FUNCTION_SET_FEATURE_TO_ENDPOINT: u32 = 15u32;
771 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
772 pub const URB_FUNCTION_SET_FEATURE_TO_INTERFACE: u32 = 14u32;
773 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
774 pub const URB_FUNCTION_SET_FEATURE_TO_OTHER: u32 = 35u32;
775 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
776 pub const URB_FUNCTION_SET_FRAME_LENGTH: u32 = 6u32;
777 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
778 pub const URB_FUNCTION_SYNC_CLEAR_STALL: u32 = 49u32;
779 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
780 pub const URB_FUNCTION_SYNC_RESET_PIPE: u32 = 48u32;
781 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
782 pub const URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL: u32 = 30u32;
783 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
784 pub const URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL: u32 = 3u32;
785 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
786 pub const URB_FUNCTION_VENDOR_DEVICE: u32 = 23u32;
787 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
788 pub const URB_FUNCTION_VENDOR_ENDPOINT: u32 = 25u32;
789 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
790 pub const URB_FUNCTION_VENDOR_INTERFACE: u32 = 24u32;
791 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
792 pub const URB_FUNCTION_VENDOR_OTHER: u32 = 32u32;
793 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
794 pub const URB_OPEN_STATIC_STREAMS_VERSION_100: u32 = 256u32;
795 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
796 pub const UREGMANUSBFNENUMPATH: &str = "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\ManufacturingMode\\Current\\USBFN\\";
797 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
798 pub const UREGUSBFNENUMPATH: &str = "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\USBFN\\";
799 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
800 pub const USBDI_VERSION: u32 = 1536u32;
801 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
802 pub const USBD_DEFAULT_MAXIMUM_TRANSFER_SIZE: u32 = 4294967295u32;
803 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
804 pub const USBD_DEFAULT_PIPE_TRANSFER: u32 = 8u32;
805 #[repr(C)]
806 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
807 pub struct USBD_DEVICE_INFORMATION {
808 pub OffsetNext: u32,
809 pub UsbdDeviceHandle: *mut ::core::ffi::c_void,
810 pub DeviceDescriptor: USB_DEVICE_DESCRIPTOR,
811 }
812 impl ::core::marker::Copy for USBD_DEVICE_INFORMATION {}
813 impl ::core::clone::Clone for USBD_DEVICE_INFORMATION {
814 fn clone(&self) -> Self {
815 *self
816 }
817 }
818 #[repr(C, packed(1))]
819 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
820 pub struct USBD_ENDPOINT_OFFLOAD_INFORMATION {
821 pub Size: u32,
822 pub EndpointAddress: u16,
823 pub ResourceId: u32,
824 pub Mode: USBD_ENDPOINT_OFFLOAD_MODE,
825 pub _bitfield1: u32,
826 pub _bitfield2: u32,
827 pub TransferSegmentLA: i64,
828 pub TransferSegmentVA: *mut ::core::ffi::c_void,
829 pub TransferRingSize: usize,
830 pub TransferRingInitialCycleBit: u32,
831 pub MessageNumber: u32,
832 pub EventRingSegmentLA: i64,
833 pub EventRingSegmentVA: *mut ::core::ffi::c_void,
834 pub EventRingSize: usize,
835 pub EventRingInitialCycleBit: u32,
836 }
837 impl ::core::marker::Copy for USBD_ENDPOINT_OFFLOAD_INFORMATION {}
838 impl ::core::clone::Clone for USBD_ENDPOINT_OFFLOAD_INFORMATION {
839 fn clone(&self) -> Self {
840 *self
841 }
842 }
843 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
844 pub type USBD_ENDPOINT_OFFLOAD_MODE = i32;
845 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
846 pub const UsbdEndpointOffloadModeNotSupported: USBD_ENDPOINT_OFFLOAD_MODE = 0i32;
847 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
848 pub const UsbdEndpointOffloadSoftwareAssisted: USBD_ENDPOINT_OFFLOAD_MODE = 1i32;
849 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
850 pub const UsbdEndpointOffloadHardwareAssisted: USBD_ENDPOINT_OFFLOAD_MODE = 2i32;
851 #[repr(C)]
852 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
853 pub struct USBD_INTERFACE_INFORMATION {
854 pub Length: u16,
855 pub InterfaceNumber: u8,
856 pub AlternateSetting: u8,
857 pub Class: u8,
858 pub SubClass: u8,
859 pub Protocol: u8,
860 pub Reserved: u8,
861 pub InterfaceHandle: *mut ::core::ffi::c_void,
862 pub NumberOfPipes: u32,
863 pub Pipes: [USBD_PIPE_INFORMATION; 1],
864 }
865 impl ::core::marker::Copy for USBD_INTERFACE_INFORMATION {}
866 impl ::core::clone::Clone for USBD_INTERFACE_INFORMATION {
867 fn clone(&self) -> Self {
868 *self
869 }
870 }
871 #[repr(C)]
872 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
873 pub struct USBD_ISO_PACKET_DESCRIPTOR {
874 pub Offset: u32,
875 pub Length: u32,
876 pub Status: i32,
877 }
878 impl ::core::marker::Copy for USBD_ISO_PACKET_DESCRIPTOR {}
879 impl ::core::clone::Clone for USBD_ISO_PACKET_DESCRIPTOR {
880 fn clone(&self) -> Self {
881 *self
882 }
883 }
884 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
885 pub const USBD_ISO_START_FRAME_RANGE: u32 = 1024u32;
886 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
887 pub const USBD_PF_CHANGE_MAX_PACKET: u32 = 1u32;
888 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
889 pub const USBD_PF_ENABLE_RT_THREAD_ACCESS: u32 = 4u32;
890 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
891 pub const USBD_PF_HANDLES_SSP_HIGH_BANDWIDTH_ISOCH: u32 = 256u32;
892 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
893 pub const USBD_PF_INTERACTIVE_PRIORITY: u32 = 48u32;
894 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
895 pub const USBD_PF_MAP_ADD_TRANSFERS: u32 = 8u32;
896 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
897 pub const USBD_PF_PRIORITY_MASK: u32 = 240u32;
898 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
899 pub const USBD_PF_SHORT_PACKET_OPT: u32 = 2u32;
900 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
901 pub const USBD_PF_SSP_HIGH_BANDWIDTH_ISOCH: u32 = 65536u32;
902 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
903 pub const USBD_PF_VIDEO_PRIORITY: u32 = 16u32;
904 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
905 pub const USBD_PF_VOICE_PRIORITY: u32 = 32u32;
906 #[repr(C)]
907 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
908 pub struct USBD_PIPE_INFORMATION {
909 pub MaximumPacketSize: u16,
910 pub EndpointAddress: u8,
911 pub Interval: u8,
912 pub PipeType: USBD_PIPE_TYPE,
913 pub PipeHandle: *mut ::core::ffi::c_void,
914 pub MaximumTransferSize: u32,
915 pub PipeFlags: u32,
916 }
917 impl ::core::marker::Copy for USBD_PIPE_INFORMATION {}
918 impl ::core::clone::Clone for USBD_PIPE_INFORMATION {
919 fn clone(&self) -> Self {
920 *self
921 }
922 }
923 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
924 pub type USBD_PIPE_TYPE = i32;
925 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
926 pub const UsbdPipeTypeControl: USBD_PIPE_TYPE = 0i32;
927 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
928 pub const UsbdPipeTypeIsochronous: USBD_PIPE_TYPE = 1i32;
929 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
930 pub const UsbdPipeTypeBulk: USBD_PIPE_TYPE = 2i32;
931 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
932 pub const UsbdPipeTypeInterrupt: USBD_PIPE_TYPE = 3i32;
933 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
934 pub const USBD_PORT_CONNECTED: u32 = 2u32;
935 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
936 pub const USBD_PORT_ENABLED: u32 = 1u32;
937 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
938 pub const USBD_SHORT_TRANSFER_OK: u32 = 2u32;
939 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
940 pub const USBD_START_ISO_TRANSFER_ASAP: u32 = 4u32;
941 #[repr(C)]
942 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
943 pub struct USBD_STREAM_INFORMATION {
944 pub PipeHandle: *mut ::core::ffi::c_void,
945 pub StreamID: u32,
946 pub MaximumTransferSize: u32,
947 pub PipeFlags: u32,
948 }
949 impl ::core::marker::Copy for USBD_STREAM_INFORMATION {}
950 impl ::core::clone::Clone for USBD_STREAM_INFORMATION {
951 fn clone(&self) -> Self {
952 *self
953 }
954 }
955 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
956 pub const USBD_TRANSFER_DIRECTION: u32 = 1u32;
957 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
958 pub const USBD_TRANSFER_DIRECTION_IN: u32 = 1u32;
959 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
960 pub const USBD_TRANSFER_DIRECTION_OUT: u32 = 0u32;
961 #[repr(C)]
962 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
963 pub struct USBD_VERSION_INFORMATION {
964 pub USBDI_Version: u32,
965 pub Supported_USB_Version: u32,
966 }
967 impl ::core::marker::Copy for USBD_VERSION_INFORMATION {}
968 impl ::core::clone::Clone for USBD_VERSION_INFORMATION {
969 fn clone(&self) -> Self {
970 *self
971 }
972 }
973 #[repr(C)]
974 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
975 #[cfg(feature = "Win32_Foundation")]
976 pub struct USBFN_BUS_CONFIGURATION_INFO {
977 pub ConfigurationName: [u16; 40],
978 pub IsCurrent: super::super::Foundation::BOOLEAN,
979 pub IsActive: super::super::Foundation::BOOLEAN,
980 }
981 #[cfg(feature = "Win32_Foundation")]
982 impl ::core::marker::Copy for USBFN_BUS_CONFIGURATION_INFO {}
983 #[cfg(feature = "Win32_Foundation")]
984 impl ::core::clone::Clone for USBFN_BUS_CONFIGURATION_INFO {
985 fn clone(&self) -> Self {
986 *self
987 }
988 }
989 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
990 pub type USBFN_BUS_SPEED = i32;
991 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
992 pub const UsbfnBusSpeedLow: USBFN_BUS_SPEED = 0i32;
993 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
994 pub const UsbfnBusSpeedFull: USBFN_BUS_SPEED = 1i32;
995 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
996 pub const UsbfnBusSpeedHigh: USBFN_BUS_SPEED = 2i32;
997 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
998 pub const UsbfnBusSpeedSuper: USBFN_BUS_SPEED = 3i32;
999 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1000 pub const UsbfnBusSpeedMaximum: USBFN_BUS_SPEED = 4i32;
1001 #[repr(C)]
1002 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
1003 #[cfg(feature = "Win32_Foundation")]
1004 pub struct USBFN_CLASS_INFORMATION_PACKET {
1005 pub FullSpeedClassInterface: USBFN_CLASS_INTERFACE,
1006 pub HighSpeedClassInterface: USBFN_CLASS_INTERFACE,
1007 pub InterfaceName: [u16; 40],
1008 pub InterfaceGuid: [u16; 39],
1009 pub HasInterfaceGuid: super::super::Foundation::BOOLEAN,
1010 pub SuperSpeedClassInterface: USBFN_CLASS_INTERFACE,
1011 }
1012 #[cfg(feature = "Win32_Foundation")]
1013 impl ::core::marker::Copy for USBFN_CLASS_INFORMATION_PACKET {}
1014 #[cfg(feature = "Win32_Foundation")]
1015 impl ::core::clone::Clone for USBFN_CLASS_INFORMATION_PACKET {
1016 fn clone(&self) -> Self {
1017 *self
1018 }
1019 }
1020 #[repr(C)]
1021 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
1022 #[cfg(feature = "Win32_Foundation")]
1023 pub struct USBFN_CLASS_INFORMATION_PACKET_EX {
1024 pub FullSpeedClassInterfaceEx: USBFN_CLASS_INTERFACE_EX,
1025 pub HighSpeedClassInterfaceEx: USBFN_CLASS_INTERFACE_EX,
1026 pub SuperSpeedClassInterfaceEx: USBFN_CLASS_INTERFACE_EX,
1027 pub InterfaceName: [u16; 40],
1028 pub InterfaceGuid: [u16; 39],
1029 pub HasInterfaceGuid: super::super::Foundation::BOOLEAN,
1030 }
1031 #[cfg(feature = "Win32_Foundation")]
1032 impl ::core::marker::Copy for USBFN_CLASS_INFORMATION_PACKET_EX {}
1033 #[cfg(feature = "Win32_Foundation")]
1034 impl ::core::clone::Clone for USBFN_CLASS_INFORMATION_PACKET_EX {
1035 fn clone(&self) -> Self {
1036 *self
1037 }
1038 }
1039 #[repr(C)]
1040 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1041 pub struct USBFN_CLASS_INTERFACE {
1042 pub InterfaceNumber: u8,
1043 pub PipeCount: u8,
1044 pub PipeArr: [USBFN_PIPE_INFORMATION; 16],
1045 }
1046 impl ::core::marker::Copy for USBFN_CLASS_INTERFACE {}
1047 impl ::core::clone::Clone for USBFN_CLASS_INTERFACE {
1048 fn clone(&self) -> Self {
1049 *self
1050 }
1051 }
1052 #[repr(C)]
1053 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1054 pub struct USBFN_CLASS_INTERFACE_EX {
1055 pub BaseInterfaceNumber: u8,
1056 pub InterfaceCount: u8,
1057 pub PipeCount: u8,
1058 pub PipeArr: [USBFN_PIPE_INFORMATION; 16],
1059 }
1060 impl ::core::marker::Copy for USBFN_CLASS_INTERFACE_EX {}
1061 impl ::core::clone::Clone for USBFN_CLASS_INTERFACE_EX {
1062 fn clone(&self) -> Self {
1063 *self
1064 }
1065 }
1066 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1067 pub type USBFN_DEVICE_STATE = i32;
1068 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1069 pub const UsbfnDeviceStateMinimum: USBFN_DEVICE_STATE = 0i32;
1070 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1071 pub const UsbfnDeviceStateAttached: USBFN_DEVICE_STATE = 1i32;
1072 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1073 pub const UsbfnDeviceStateDefault: USBFN_DEVICE_STATE = 2i32;
1074 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1075 pub const UsbfnDeviceStateDetached: USBFN_DEVICE_STATE = 3i32;
1076 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1077 pub const UsbfnDeviceStateAddressed: USBFN_DEVICE_STATE = 4i32;
1078 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1079 pub const UsbfnDeviceStateConfigured: USBFN_DEVICE_STATE = 5i32;
1080 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1081 pub const UsbfnDeviceStateSuspended: USBFN_DEVICE_STATE = 6i32;
1082 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1083 pub const UsbfnDeviceStateStateMaximum: USBFN_DEVICE_STATE = 7i32;
1084 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1085 pub type USBFN_DIRECTION = i32;
1086 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1087 pub const UsbfnDirectionMinimum: USBFN_DIRECTION = 0i32;
1088 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1089 pub const UsbfnDirectionIn: USBFN_DIRECTION = 1i32;
1090 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1091 pub const UsbfnDirectionOut: USBFN_DIRECTION = 2i32;
1092 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1093 pub const UsbfnDirectionTx: USBFN_DIRECTION = 1i32;
1094 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1095 pub const UsbfnDirectionRx: USBFN_DIRECTION = 2i32;
1096 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1097 pub const UsbfnDirectionMaximum: USBFN_DIRECTION = 3i32;
1098 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1099 pub type USBFN_EVENT = i32;
1100 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1101 pub const UsbfnEventMinimum: USBFN_EVENT = 0i32;
1102 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1103 pub const UsbfnEventAttach: USBFN_EVENT = 1i32;
1104 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1105 pub const UsbfnEventReset: USBFN_EVENT = 2i32;
1106 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1107 pub const UsbfnEventDetach: USBFN_EVENT = 3i32;
1108 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1109 pub const UsbfnEventSuspend: USBFN_EVENT = 4i32;
1110 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1111 pub const UsbfnEventResume: USBFN_EVENT = 5i32;
1112 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1113 pub const UsbfnEventSetupPacket: USBFN_EVENT = 6i32;
1114 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1115 pub const UsbfnEventConfigured: USBFN_EVENT = 7i32;
1116 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1117 pub const UsbfnEventUnConfigured: USBFN_EVENT = 8i32;
1118 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1119 pub const UsbfnEventPortType: USBFN_EVENT = 9i32;
1120 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1121 pub const UsbfnEventBusTearDown: USBFN_EVENT = 10i32;
1122 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1123 pub const UsbfnEventSetInterface: USBFN_EVENT = 11i32;
1124 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1125 pub const UsbfnEventMaximum: USBFN_EVENT = 12i32;
1126 #[repr(C)]
1127 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1128 pub struct USBFN_INTERFACE_INFO {
1129 pub InterfaceNumber: u8,
1130 pub Speed: USBFN_BUS_SPEED,
1131 pub Size: u16,
1132 pub InterfaceDescriptorSet: [u8; 1],
1133 }
1134 impl ::core::marker::Copy for USBFN_INTERFACE_INFO {}
1135 impl ::core::clone::Clone for USBFN_INTERFACE_INFO {
1136 fn clone(&self) -> Self {
1137 *self
1138 }
1139 }
1140 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1141 pub const USBFN_INTERRUPT_ENDPOINT_SIZE_NOT_UPDATEABLE_MASK: u32 = 128u32;
1142 #[repr(C)]
1143 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1144 pub struct USBFN_NOTIFICATION {
1145 pub Event: USBFN_EVENT,
1146 pub u: USBFN_NOTIFICATION_0,
1147 }
1148 impl ::core::marker::Copy for USBFN_NOTIFICATION {}
1149 impl ::core::clone::Clone for USBFN_NOTIFICATION {
1150 fn clone(&self) -> Self {
1151 *self
1152 }
1153 }
1154 #[repr(C)]
1155 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1156 pub union USBFN_NOTIFICATION_0 {
1157 pub BusSpeed: USBFN_BUS_SPEED,
1158 pub SetupPacket: USB_DEFAULT_PIPE_SETUP_PACKET,
1159 pub ConfigurationValue: u16,
1160 pub PortType: USBFN_PORT_TYPE,
1161 pub AlternateInterface: ALTERNATE_INTERFACE,
1162 }
1163 impl ::core::marker::Copy for USBFN_NOTIFICATION_0 {}
1164 impl ::core::clone::Clone for USBFN_NOTIFICATION_0 {
1165 fn clone(&self) -> Self {
1166 *self
1167 }
1168 }
1169 #[repr(C)]
1170 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1171 pub struct USBFN_PIPE_INFORMATION {
1172 pub EpDesc: USB_ENDPOINT_DESCRIPTOR,
1173 pub PipeId: u32,
1174 }
1175 impl ::core::marker::Copy for USBFN_PIPE_INFORMATION {}
1176 impl ::core::clone::Clone for USBFN_PIPE_INFORMATION {
1177 fn clone(&self) -> Self {
1178 *self
1179 }
1180 }
1181 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1182 pub type USBFN_PORT_TYPE = i32;
1183 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1184 pub const UsbfnUnknownPort: USBFN_PORT_TYPE = 0i32;
1185 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1186 pub const UsbfnStandardDownstreamPort: USBFN_PORT_TYPE = 1i32;
1187 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1188 pub const UsbfnChargingDownstreamPort: USBFN_PORT_TYPE = 2i32;
1189 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1190 pub const UsbfnDedicatedChargingPort: USBFN_PORT_TYPE = 3i32;
1191 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1192 pub const UsbfnInvalidDedicatedChargingPort: USBFN_PORT_TYPE = 4i32;
1193 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1194 pub const UsbfnProprietaryDedicatedChargingPort: USBFN_PORT_TYPE = 5i32;
1195 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1196 pub const UsbfnPortTypeMaximum: USBFN_PORT_TYPE = 6i32;
1197 #[repr(C)]
1198 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1199 pub struct USBFN_USB_STRING {
1200 pub StringIndex: u8,
1201 pub UsbString: [u16; 255],
1202 }
1203 impl ::core::marker::Copy for USBFN_USB_STRING {}
1204 impl ::core::clone::Clone for USBFN_USB_STRING {
1205 fn clone(&self) -> Self {
1206 *self
1207 }
1208 }
1209 #[repr(C)]
1210 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1211 pub struct USBSCAN_GET_DESCRIPTOR {
1212 pub DescriptorType: u8,
1213 pub Index: u8,
1214 pub LanguageId: u16,
1215 }
1216 impl ::core::marker::Copy for USBSCAN_GET_DESCRIPTOR {}
1217 impl ::core::clone::Clone for USBSCAN_GET_DESCRIPTOR {
1218 fn clone(&self) -> Self {
1219 *self
1220 }
1221 }
1222 #[repr(C)]
1223 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1224 pub struct USBSCAN_PIPE_CONFIGURATION {
1225 pub NumberOfPipes: u32,
1226 pub PipeInfo: [USBSCAN_PIPE_INFORMATION; 8],
1227 }
1228 impl ::core::marker::Copy for USBSCAN_PIPE_CONFIGURATION {}
1229 impl ::core::clone::Clone for USBSCAN_PIPE_CONFIGURATION {
1230 fn clone(&self) -> Self {
1231 *self
1232 }
1233 }
1234 #[repr(C)]
1235 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1236 pub struct USBSCAN_PIPE_INFORMATION {
1237 pub MaximumPacketSize: u16,
1238 pub EndpointAddress: u8,
1239 pub Interval: u8,
1240 pub PipeType: RAW_PIPE_TYPE,
1241 }
1242 impl ::core::marker::Copy for USBSCAN_PIPE_INFORMATION {}
1243 impl ::core::clone::Clone for USBSCAN_PIPE_INFORMATION {
1244 fn clone(&self) -> Self {
1245 *self
1246 }
1247 }
1248 #[repr(C)]
1249 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1250 pub struct USBSCAN_TIMEOUT {
1251 pub TimeoutRead: u32,
1252 pub TimeoutWrite: u32,
1253 pub TimeoutEvent: u32,
1254 }
1255 impl ::core::marker::Copy for USBSCAN_TIMEOUT {}
1256 impl ::core::clone::Clone for USBSCAN_TIMEOUT {
1257 fn clone(&self) -> Self {
1258 *self
1259 }
1260 }
1261 #[repr(C)]
1262 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1263 pub struct USBUSER_BANDWIDTH_INFO_REQUEST {
1264 pub Header: USBUSER_REQUEST_HEADER,
1265 pub BandwidthInformation: USB_BANDWIDTH_INFO,
1266 }
1267 impl ::core::marker::Copy for USBUSER_BANDWIDTH_INFO_REQUEST {}
1268 impl ::core::clone::Clone for USBUSER_BANDWIDTH_INFO_REQUEST {
1269 fn clone(&self) -> Self {
1270 *self
1271 }
1272 }
1273 #[repr(C)]
1274 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
1275 #[cfg(feature = "Win32_Foundation")]
1276 pub struct USBUSER_BUS_STATISTICS_0_REQUEST {
1277 pub Header: USBUSER_REQUEST_HEADER,
1278 pub BusStatistics0: USB_BUS_STATISTICS_0,
1279 }
1280 #[cfg(feature = "Win32_Foundation")]
1281 impl ::core::marker::Copy for USBUSER_BUS_STATISTICS_0_REQUEST {}
1282 #[cfg(feature = "Win32_Foundation")]
1283 impl ::core::clone::Clone for USBUSER_BUS_STATISTICS_0_REQUEST {
1284 fn clone(&self) -> Self {
1285 *self
1286 }
1287 }
1288 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1289 pub const USBUSER_CLEAR_ROOTPORT_FEATURE: u32 = 536870918u32;
1290 #[repr(C)]
1291 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1292 pub struct USBUSER_CLOSE_RAW_DEVICE {
1293 pub Header: USBUSER_REQUEST_HEADER,
1294 pub Parameters: USB_CLOSE_RAW_DEVICE_PARAMETERS,
1295 }
1296 impl ::core::marker::Copy for USBUSER_CLOSE_RAW_DEVICE {}
1297 impl ::core::clone::Clone for USBUSER_CLOSE_RAW_DEVICE {
1298 fn clone(&self) -> Self {
1299 *self
1300 }
1301 }
1302 #[repr(C)]
1303 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1304 pub struct USBUSER_CONTROLLER_INFO_0 {
1305 pub Header: USBUSER_REQUEST_HEADER,
1306 pub Info0: USB_CONTROLLER_INFO_0,
1307 }
1308 impl ::core::marker::Copy for USBUSER_CONTROLLER_INFO_0 {}
1309 impl ::core::clone::Clone for USBUSER_CONTROLLER_INFO_0 {
1310 fn clone(&self) -> Self {
1311 *self
1312 }
1313 }
1314 #[repr(C)]
1315 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1316 pub struct USBUSER_CONTROLLER_UNICODE_NAME {
1317 pub Header: USBUSER_REQUEST_HEADER,
1318 pub UnicodeName: USB_UNICODE_NAME,
1319 }
1320 impl ::core::marker::Copy for USBUSER_CONTROLLER_UNICODE_NAME {}
1321 impl ::core::clone::Clone for USBUSER_CONTROLLER_UNICODE_NAME {
1322 fn clone(&self) -> Self {
1323 *self
1324 }
1325 }
1326 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1327 pub const USBUSER_GET_BANDWIDTH_INFORMATION: u32 = 5u32;
1328 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1329 pub const USBUSER_GET_BUS_STATISTICS_0: u32 = 6u32;
1330 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1331 pub const USBUSER_GET_CONTROLLER_DRIVER_KEY: u32 = 2u32;
1332 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1333 pub const USBUSER_GET_CONTROLLER_INFO_0: u32 = 1u32;
1334 #[repr(C)]
1335 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
1336 #[cfg(feature = "Win32_Foundation")]
1337 pub struct USBUSER_GET_DRIVER_VERSION {
1338 pub Header: USBUSER_REQUEST_HEADER,
1339 pub Parameters: USB_DRIVER_VERSION_PARAMETERS,
1340 }
1341 #[cfg(feature = "Win32_Foundation")]
1342 impl ::core::marker::Copy for USBUSER_GET_DRIVER_VERSION {}
1343 #[cfg(feature = "Win32_Foundation")]
1344 impl ::core::clone::Clone for USBUSER_GET_DRIVER_VERSION {
1345 fn clone(&self) -> Self {
1346 *self
1347 }
1348 }
1349 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1350 pub const USBUSER_GET_POWER_STATE_MAP: u32 = 4u32;
1351 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1352 pub const USBUSER_GET_ROOTHUB_SYMBOLIC_NAME: u32 = 7u32;
1353 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1354 pub const USBUSER_GET_ROOTPORT_STATUS: u32 = 536870919u32;
1355 #[repr(C)]
1356 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1357 pub struct USBUSER_GET_USB2HW_VERSION {
1358 pub Header: USBUSER_REQUEST_HEADER,
1359 pub Parameters: USB_USB2HW_VERSION_PARAMETERS,
1360 }
1361 impl ::core::marker::Copy for USBUSER_GET_USB2HW_VERSION {}
1362 impl ::core::clone::Clone for USBUSER_GET_USB2HW_VERSION {
1363 fn clone(&self) -> Self {
1364 *self
1365 }
1366 }
1367 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1368 pub const USBUSER_GET_USB2_HW_VERSION: u32 = 9u32;
1369 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1370 pub const USBUSER_GET_USB_DRIVER_VERSION: u32 = 8u32;
1371 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1372 pub const USBUSER_INVALID_REQUEST: u32 = 4294967280u32;
1373 #[repr(C)]
1374 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1375 pub struct USBUSER_OPEN_RAW_DEVICE {
1376 pub Header: USBUSER_REQUEST_HEADER,
1377 pub Parameters: USB_OPEN_RAW_DEVICE_PARAMETERS,
1378 }
1379 impl ::core::marker::Copy for USBUSER_OPEN_RAW_DEVICE {}
1380 impl ::core::clone::Clone for USBUSER_OPEN_RAW_DEVICE {
1381 fn clone(&self) -> Self {
1382 *self
1383 }
1384 }
1385 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1386 pub const USBUSER_OP_CLOSE_RAW_DEVICE: u32 = 536870915u32;
1387 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1388 pub const USBUSER_OP_MASK_DEVONLY_API: u32 = 268435456u32;
1389 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1390 pub const USBUSER_OP_MASK_HCTEST_API: u32 = 536870912u32;
1391 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1392 pub const USBUSER_OP_OPEN_RAW_DEVICE: u32 = 536870914u32;
1393 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1394 pub const USBUSER_OP_RAW_RESET_PORT: u32 = 536870913u32;
1395 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1396 pub const USBUSER_OP_SEND_ONE_PACKET: u32 = 268435457u32;
1397 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1398 pub const USBUSER_OP_SEND_RAW_COMMAND: u32 = 536870916u32;
1399 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1400 pub const USBUSER_PASS_THRU: u32 = 3u32;
1401 #[repr(C)]
1402 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1403 pub struct USBUSER_PASS_THRU_REQUEST {
1404 pub Header: USBUSER_REQUEST_HEADER,
1405 pub PassThru: USB_PASS_THRU_PARAMETERS,
1406 }
1407 impl ::core::marker::Copy for USBUSER_PASS_THRU_REQUEST {}
1408 impl ::core::clone::Clone for USBUSER_PASS_THRU_REQUEST {
1409 fn clone(&self) -> Self {
1410 *self
1411 }
1412 }
1413 #[repr(C)]
1414 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
1415 #[cfg(feature = "Win32_Foundation")]
1416 pub struct USBUSER_POWER_INFO_REQUEST {
1417 pub Header: USBUSER_REQUEST_HEADER,
1418 pub PowerInformation: USB_POWER_INFO,
1419 }
1420 #[cfg(feature = "Win32_Foundation")]
1421 impl ::core::marker::Copy for USBUSER_POWER_INFO_REQUEST {}
1422 #[cfg(feature = "Win32_Foundation")]
1423 impl ::core::clone::Clone for USBUSER_POWER_INFO_REQUEST {
1424 fn clone(&self) -> Self {
1425 *self
1426 }
1427 }
1428 #[repr(C)]
1429 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1430 pub struct USBUSER_RAW_RESET_ROOT_PORT {
1431 pub Header: USBUSER_REQUEST_HEADER,
1432 pub Parameters: RAW_RESET_PORT_PARAMETERS,
1433 }
1434 impl ::core::marker::Copy for USBUSER_RAW_RESET_ROOT_PORT {}
1435 impl ::core::clone::Clone for USBUSER_RAW_RESET_ROOT_PORT {
1436 fn clone(&self) -> Self {
1437 *self
1438 }
1439 }
1440 #[repr(C, packed(1))]
1441 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1442 pub struct USBUSER_REFRESH_HCT_REG {
1443 pub Header: USBUSER_REQUEST_HEADER,
1444 pub Flags: u32,
1445 }
1446 impl ::core::marker::Copy for USBUSER_REFRESH_HCT_REG {}
1447 impl ::core::clone::Clone for USBUSER_REFRESH_HCT_REG {
1448 fn clone(&self) -> Self {
1449 *self
1450 }
1451 }
1452 #[repr(C, packed(1))]
1453 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1454 pub struct USBUSER_REQUEST_HEADER {
1455 pub UsbUserRequest: u32,
1456 pub UsbUserStatusCode: USB_USER_ERROR_CODE,
1457 pub RequestBufferLength: u32,
1458 pub ActualBufferLength: u32,
1459 }
1460 impl ::core::marker::Copy for USBUSER_REQUEST_HEADER {}
1461 impl ::core::clone::Clone for USBUSER_REQUEST_HEADER {
1462 fn clone(&self) -> Self {
1463 *self
1464 }
1465 }
1466 #[repr(C)]
1467 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1468 pub struct USBUSER_ROOTPORT_FEATURE_REQUEST {
1469 pub Header: USBUSER_REQUEST_HEADER,
1470 pub Parameters: RAW_ROOTPORT_FEATURE,
1471 }
1472 impl ::core::marker::Copy for USBUSER_ROOTPORT_FEATURE_REQUEST {}
1473 impl ::core::clone::Clone for USBUSER_ROOTPORT_FEATURE_REQUEST {
1474 fn clone(&self) -> Self {
1475 *self
1476 }
1477 }
1478 #[repr(C)]
1479 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1480 pub struct USBUSER_ROOTPORT_PARAMETERS {
1481 pub Header: USBUSER_REQUEST_HEADER,
1482 pub Parameters: RAW_ROOTPORT_PARAMETERS,
1483 }
1484 impl ::core::marker::Copy for USBUSER_ROOTPORT_PARAMETERS {}
1485 impl ::core::clone::Clone for USBUSER_ROOTPORT_PARAMETERS {
1486 fn clone(&self) -> Self {
1487 *self
1488 }
1489 }
1490 #[repr(C)]
1491 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1492 pub struct USBUSER_SEND_ONE_PACKET {
1493 pub Header: USBUSER_REQUEST_HEADER,
1494 pub PacketParameters: PACKET_PARAMETERS,
1495 }
1496 impl ::core::marker::Copy for USBUSER_SEND_ONE_PACKET {}
1497 impl ::core::clone::Clone for USBUSER_SEND_ONE_PACKET {
1498 fn clone(&self) -> Self {
1499 *self
1500 }
1501 }
1502 #[repr(C)]
1503 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1504 pub struct USBUSER_SEND_RAW_COMMAND {
1505 pub Header: USBUSER_REQUEST_HEADER,
1506 pub Parameters: USB_SEND_RAW_COMMAND_PARAMETERS,
1507 }
1508 impl ::core::marker::Copy for USBUSER_SEND_RAW_COMMAND {}
1509 impl ::core::clone::Clone for USBUSER_SEND_RAW_COMMAND {
1510 fn clone(&self) -> Self {
1511 *self
1512 }
1513 }
1514 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1515 pub const USBUSER_SET_ROOTPORT_FEATURE: u32 = 536870917u32;
1516 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1517 pub const USBUSER_USB_REFRESH_HCT_REG: u32 = 10u32;
1518 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1519 pub const USBUSER_VERSION: u32 = 4u32;
1520 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1521 pub const USB_20_ENDPOINT_TYPE_INTERRUPT_RESERVED_MASK: u32 = 252u32;
1522 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1523 pub const USB_20_HUB_DESCRIPTOR_TYPE: u32 = 41u32;
1524 #[repr(C, packed(1))]
1525 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1526 pub union USB_20_PORT_CHANGE {
1527 pub AsUshort16: u16,
1528 pub Anonymous: USB_20_PORT_CHANGE_0,
1529 }
1530 impl ::core::marker::Copy for USB_20_PORT_CHANGE {}
1531 impl ::core::clone::Clone for USB_20_PORT_CHANGE {
1532 fn clone(&self) -> Self {
1533 *self
1534 }
1535 }
1536 #[repr(C, packed(1))]
1537 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1538 pub struct USB_20_PORT_CHANGE_0 {
1539 pub _bitfield: u16,
1540 }
1541 impl ::core::marker::Copy for USB_20_PORT_CHANGE_0 {}
1542 impl ::core::clone::Clone for USB_20_PORT_CHANGE_0 {
1543 fn clone(&self) -> Self {
1544 *self
1545 }
1546 }
1547 #[repr(C, packed(1))]
1548 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1549 pub union USB_20_PORT_STATUS {
1550 pub AsUshort16: u16,
1551 pub Anonymous: USB_20_PORT_STATUS_0,
1552 }
1553 impl ::core::marker::Copy for USB_20_PORT_STATUS {}
1554 impl ::core::clone::Clone for USB_20_PORT_STATUS {
1555 fn clone(&self) -> Self {
1556 *self
1557 }
1558 }
1559 #[repr(C, packed(1))]
1560 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1561 pub struct USB_20_PORT_STATUS_0 {
1562 pub _bitfield: u16,
1563 }
1564 impl ::core::marker::Copy for USB_20_PORT_STATUS_0 {}
1565 impl ::core::clone::Clone for USB_20_PORT_STATUS_0 {
1566 fn clone(&self) -> Self {
1567 *self
1568 }
1569 }
1570 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1571 pub const USB_30_ENDPOINT_TYPE_INTERRUPT_RESERVED_MASK: u32 = 204u32;
1572 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1573 pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_MASK: u32 = 48u32;
1574 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1575 pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_NOTIFICATION: u32 = 16u32;
1576 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1577 pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_PERIODIC: u32 = 0u32;
1578 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1579 pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_RESERVED10: u32 = 32u32;
1580 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1581 pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_RESERVED11: u32 = 48u32;
1582 #[repr(C, packed(1))]
1583 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1584 pub struct USB_30_HUB_DESCRIPTOR {
1585 pub bLength: u8,
1586 pub bDescriptorType: u8,
1587 pub bNumberOfPorts: u8,
1588 pub wHubCharacteristics: u16,
1589 pub bPowerOnToPowerGood: u8,
1590 pub bHubControlCurrent: u8,
1591 pub bHubHdrDecLat: u8,
1592 pub wHubDelay: u16,
1593 pub DeviceRemovable: u16,
1594 }
1595 impl ::core::marker::Copy for USB_30_HUB_DESCRIPTOR {}
1596 impl ::core::clone::Clone for USB_30_HUB_DESCRIPTOR {
1597 fn clone(&self) -> Self {
1598 *self
1599 }
1600 }
1601 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1602 pub const USB_30_HUB_DESCRIPTOR_TYPE: u32 = 42u32;
1603 #[repr(C, packed(1))]
1604 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1605 pub union USB_30_PORT_CHANGE {
1606 pub AsUshort16: u16,
1607 pub Anonymous: USB_30_PORT_CHANGE_0,
1608 }
1609 impl ::core::marker::Copy for USB_30_PORT_CHANGE {}
1610 impl ::core::clone::Clone for USB_30_PORT_CHANGE {
1611 fn clone(&self) -> Self {
1612 *self
1613 }
1614 }
1615 #[repr(C, packed(1))]
1616 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1617 pub struct USB_30_PORT_CHANGE_0 {
1618 pub _bitfield: u16,
1619 }
1620 impl ::core::marker::Copy for USB_30_PORT_CHANGE_0 {}
1621 impl ::core::clone::Clone for USB_30_PORT_CHANGE_0 {
1622 fn clone(&self) -> Self {
1623 *self
1624 }
1625 }
1626 #[repr(C, packed(1))]
1627 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1628 pub union USB_30_PORT_STATUS {
1629 pub AsUshort16: u16,
1630 pub Anonymous: USB_30_PORT_STATUS_0,
1631 }
1632 impl ::core::marker::Copy for USB_30_PORT_STATUS {}
1633 impl ::core::clone::Clone for USB_30_PORT_STATUS {
1634 fn clone(&self) -> Self {
1635 *self
1636 }
1637 }
1638 #[repr(C, packed(1))]
1639 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1640 pub struct USB_30_PORT_STATUS_0 {
1641 pub _bitfield: u16,
1642 }
1643 impl ::core::marker::Copy for USB_30_PORT_STATUS_0 {}
1644 impl ::core::clone::Clone for USB_30_PORT_STATUS_0 {
1645 fn clone(&self) -> Self {
1646 *self
1647 }
1648 }
1649 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1650 pub const USB_ALLOW_FIRMWARE_UPDATE: u32 = 1u32;
1651 #[repr(C, packed(1))]
1652 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1653 pub struct USB_BANDWIDTH_INFO {
1654 pub DeviceCount: u32,
1655 pub TotalBusBandwidth: u32,
1656 pub Total32secBandwidth: u32,
1657 pub AllocedBulkAndControl: u32,
1658 pub AllocedIso: u32,
1659 pub AllocedInterrupt_1ms: u32,
1660 pub AllocedInterrupt_2ms: u32,
1661 pub AllocedInterrupt_4ms: u32,
1662 pub AllocedInterrupt_8ms: u32,
1663 pub AllocedInterrupt_16ms: u32,
1664 pub AllocedInterrupt_32ms: u32,
1665 }
1666 impl ::core::marker::Copy for USB_BANDWIDTH_INFO {}
1667 impl ::core::clone::Clone for USB_BANDWIDTH_INFO {
1668 fn clone(&self) -> Self {
1669 *self
1670 }
1671 }
1672 #[repr(C, packed(1))]
1673 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1674 pub struct USB_BOS_DESCRIPTOR {
1675 pub bLength: u8,
1676 pub bDescriptorType: u8,
1677 pub wTotalLength: u16,
1678 pub bNumDeviceCaps: u8,
1679 }
1680 impl ::core::marker::Copy for USB_BOS_DESCRIPTOR {}
1681 impl ::core::clone::Clone for USB_BOS_DESCRIPTOR {
1682 fn clone(&self) -> Self {
1683 *self
1684 }
1685 }
1686 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1687 pub const USB_BOS_DESCRIPTOR_TYPE: u32 = 15u32;
1688 #[repr(C, packed(1))]
1689 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
1690 #[cfg(feature = "Win32_Foundation")]
1691 pub struct USB_BUS_STATISTICS_0 {
1692 pub DeviceCount: u32,
1693 pub CurrentSystemTime: i64,
1694 pub CurrentUsbFrame: u32,
1695 pub BulkBytes: u32,
1696 pub IsoBytes: u32,
1697 pub InterruptBytes: u32,
1698 pub ControlDataBytes: u32,
1699 pub PciInterruptCount: u32,
1700 pub HardResetCount: u32,
1701 pub WorkerSignalCount: u32,
1702 pub CommonBufferBytes: u32,
1703 pub WorkerIdleTimeMs: u32,
1704 pub RootHubEnabled: super::super::Foundation::BOOLEAN,
1705 pub RootHubDevicePowerState: u8,
1706 pub Unused: u8,
1707 pub NameIndex: u8,
1708 }
1709 #[cfg(feature = "Win32_Foundation")]
1710 impl ::core::marker::Copy for USB_BUS_STATISTICS_0 {}
1711 #[cfg(feature = "Win32_Foundation")]
1712 impl ::core::clone::Clone for USB_BUS_STATISTICS_0 {
1713 fn clone(&self) -> Self {
1714 *self
1715 }
1716 }
1717 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1718 pub const USB_CHARGING_POLICY_DEFAULT: u32 = 0u32;
1719 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1720 pub const USB_CHARGING_POLICY_ICCHPF: u32 = 1u32;
1721 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1722 pub const USB_CHARGING_POLICY_ICCLPF: u32 = 2u32;
1723 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1724 pub const USB_CHARGING_POLICY_NO_POWER: u32 = 3u32;
1725 #[repr(C, packed(1))]
1726 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1727 pub struct USB_CLOSE_RAW_DEVICE_PARAMETERS {
1728 pub xxx: u32,
1729 }
1730 impl ::core::marker::Copy for USB_CLOSE_RAW_DEVICE_PARAMETERS {}
1731 impl ::core::clone::Clone for USB_CLOSE_RAW_DEVICE_PARAMETERS {
1732 fn clone(&self) -> Self {
1733 *self
1734 }
1735 }
1736 #[repr(C)]
1737 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1738 pub struct USB_COMMON_DESCRIPTOR {
1739 pub bLength: u8,
1740 pub bDescriptorType: u8,
1741 }
1742 impl ::core::marker::Copy for USB_COMMON_DESCRIPTOR {}
1743 impl ::core::clone::Clone for USB_COMMON_DESCRIPTOR {
1744 fn clone(&self) -> Self {
1745 *self
1746 }
1747 }
1748 #[repr(C, packed(1))]
1749 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1750 pub struct USB_CONFIGURATION_DESCRIPTOR {
1751 pub bLength: u8,
1752 pub bDescriptorType: u8,
1753 pub wTotalLength: u16,
1754 pub bNumInterfaces: u8,
1755 pub bConfigurationValue: u8,
1756 pub iConfiguration: u8,
1757 pub bmAttributes: u8,
1758 pub MaxPower: u8,
1759 }
1760 impl ::core::marker::Copy for USB_CONFIGURATION_DESCRIPTOR {}
1761 impl ::core::clone::Clone for USB_CONFIGURATION_DESCRIPTOR {
1762 fn clone(&self) -> Self {
1763 *self
1764 }
1765 }
1766 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1767 pub const USB_CONFIGURATION_DESCRIPTOR_TYPE: u32 = 2u32;
1768 #[repr(C, packed(1))]
1769 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1770 pub struct USB_CONFIGURATION_POWER_DESCRIPTOR {
1771 pub bLength: u8,
1772 pub bDescriptorType: u8,
1773 pub SelfPowerConsumedD0: [u8; 3],
1774 pub bPowerSummaryId: u8,
1775 pub bBusPowerSavingD1: u8,
1776 pub bSelfPowerSavingD1: u8,
1777 pub bBusPowerSavingD2: u8,
1778 pub bSelfPowerSavingD2: u8,
1779 pub bBusPowerSavingD3: u8,
1780 pub bSelfPowerSavingD3: u8,
1781 pub TransitionTimeFromD1: u16,
1782 pub TransitionTimeFromD2: u16,
1783 pub TransitionTimeFromD3: u16,
1784 }
1785 impl ::core::marker::Copy for USB_CONFIGURATION_POWER_DESCRIPTOR {}
1786 impl ::core::clone::Clone for USB_CONFIGURATION_POWER_DESCRIPTOR {
1787 fn clone(&self) -> Self {
1788 *self
1789 }
1790 }
1791 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1792 pub const USB_CONFIG_BUS_POWERED: u32 = 128u32;
1793 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1794 pub const USB_CONFIG_POWERED_MASK: u32 = 192u32;
1795 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1796 pub const USB_CONFIG_POWER_DESCRIPTOR_TYPE: u32 = 7u32;
1797 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1798 pub const USB_CONFIG_REMOTE_WAKEUP: u32 = 32u32;
1799 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1800 pub const USB_CONFIG_RESERVED: u32 = 31u32;
1801 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1802 pub const USB_CONFIG_SELF_POWERED: u32 = 64u32;
1803 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1804 pub type USB_CONTROLLER_FLAVOR = i32;
1805 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1806 pub const USB_HcGeneric: USB_CONTROLLER_FLAVOR = 0i32;
1807 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1808 pub const OHCI_Generic: USB_CONTROLLER_FLAVOR = 100i32;
1809 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1810 pub const OHCI_Hydra: USB_CONTROLLER_FLAVOR = 101i32;
1811 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1812 pub const OHCI_NEC: USB_CONTROLLER_FLAVOR = 102i32;
1813 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1814 pub const UHCI_Generic: USB_CONTROLLER_FLAVOR = 200i32;
1815 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1816 pub const UHCI_Piix4: USB_CONTROLLER_FLAVOR = 201i32;
1817 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1818 pub const UHCI_Piix3: USB_CONTROLLER_FLAVOR = 202i32;
1819 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1820 pub const UHCI_Ich2: USB_CONTROLLER_FLAVOR = 203i32;
1821 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1822 pub const UHCI_Reserved204: USB_CONTROLLER_FLAVOR = 204i32;
1823 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1824 pub const UHCI_Ich1: USB_CONTROLLER_FLAVOR = 205i32;
1825 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1826 pub const UHCI_Ich3m: USB_CONTROLLER_FLAVOR = 206i32;
1827 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1828 pub const UHCI_Ich4: USB_CONTROLLER_FLAVOR = 207i32;
1829 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1830 pub const UHCI_Ich5: USB_CONTROLLER_FLAVOR = 208i32;
1831 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1832 pub const UHCI_Ich6: USB_CONTROLLER_FLAVOR = 209i32;
1833 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1834 pub const UHCI_Intel: USB_CONTROLLER_FLAVOR = 249i32;
1835 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1836 pub const UHCI_VIA: USB_CONTROLLER_FLAVOR = 250i32;
1837 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1838 pub const UHCI_VIA_x01: USB_CONTROLLER_FLAVOR = 251i32;
1839 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1840 pub const UHCI_VIA_x02: USB_CONTROLLER_FLAVOR = 252i32;
1841 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1842 pub const UHCI_VIA_x03: USB_CONTROLLER_FLAVOR = 253i32;
1843 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1844 pub const UHCI_VIA_x04: USB_CONTROLLER_FLAVOR = 254i32;
1845 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1846 pub const UHCI_VIA_x0E_FIFO: USB_CONTROLLER_FLAVOR = 264i32;
1847 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1848 pub const EHCI_Generic: USB_CONTROLLER_FLAVOR = 1000i32;
1849 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1850 pub const EHCI_NEC: USB_CONTROLLER_FLAVOR = 2000i32;
1851 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1852 pub const EHCI_Lucent: USB_CONTROLLER_FLAVOR = 3000i32;
1853 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1854 pub const EHCI_NVIDIA_Tegra2: USB_CONTROLLER_FLAVOR = 4000i32;
1855 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1856 pub const EHCI_NVIDIA_Tegra3: USB_CONTROLLER_FLAVOR = 4001i32;
1857 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1858 pub const EHCI_Intel_Medfield: USB_CONTROLLER_FLAVOR = 5001i32;
1859 #[repr(C, packed(1))]
1860 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1861 pub struct USB_CONTROLLER_INFO_0 {
1862 pub PciVendorId: u32,
1863 pub PciDeviceId: u32,
1864 pub PciRevision: u32,
1865 pub NumberOfRootPorts: u32,
1866 pub ControllerFlavor: USB_CONTROLLER_FLAVOR,
1867 pub HcFeatureFlags: u32,
1868 }
1869 impl ::core::marker::Copy for USB_CONTROLLER_INFO_0 {}
1870 impl ::core::clone::Clone for USB_CONTROLLER_INFO_0 {
1871 fn clone(&self) -> Self {
1872 *self
1873 }
1874 }
1875 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1876 pub const USB_CYCLE_PORT: u32 = 7u32;
1877 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1878 pub const USB_DEBUG_DESCRIPTOR_TYPE: u32 = 10u32;
1879 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1880 pub const USB_DEFAULT_DEVICE_ADDRESS: u32 = 0u32;
1881 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1882 pub const USB_DEFAULT_ENDPOINT_ADDRESS: u32 = 0u32;
1883 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1884 pub const USB_DEFAULT_MAX_PACKET: u32 = 64u32;
1885 #[repr(C, packed(1))]
1886 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1887 pub struct USB_DEFAULT_PIPE_SETUP_PACKET {
1888 pub bmRequestType: BM_REQUEST_TYPE,
1889 pub bRequest: u8,
1890 pub wValue: USB_DEFAULT_PIPE_SETUP_PACKET_1,
1891 pub wIndex: USB_DEFAULT_PIPE_SETUP_PACKET_0,
1892 pub wLength: u16,
1893 }
1894 impl ::core::marker::Copy for USB_DEFAULT_PIPE_SETUP_PACKET {}
1895 impl ::core::clone::Clone for USB_DEFAULT_PIPE_SETUP_PACKET {
1896 fn clone(&self) -> Self {
1897 *self
1898 }
1899 }
1900 #[repr(C, packed(1))]
1901 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1902 pub union USB_DEFAULT_PIPE_SETUP_PACKET_0 {
1903 pub Anonymous: USB_DEFAULT_PIPE_SETUP_PACKET_0_0,
1904 pub W: u16,
1905 }
1906 impl ::core::marker::Copy for USB_DEFAULT_PIPE_SETUP_PACKET_0 {}
1907 impl ::core::clone::Clone for USB_DEFAULT_PIPE_SETUP_PACKET_0 {
1908 fn clone(&self) -> Self {
1909 *self
1910 }
1911 }
1912 #[repr(C)]
1913 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1914 pub struct USB_DEFAULT_PIPE_SETUP_PACKET_0_0 {
1915 pub LowByte: u8,
1916 pub HiByte: u8,
1917 }
1918 impl ::core::marker::Copy for USB_DEFAULT_PIPE_SETUP_PACKET_0_0 {}
1919 impl ::core::clone::Clone for USB_DEFAULT_PIPE_SETUP_PACKET_0_0 {
1920 fn clone(&self) -> Self {
1921 *self
1922 }
1923 }
1924 #[repr(C, packed(1))]
1925 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1926 pub union USB_DEFAULT_PIPE_SETUP_PACKET_1 {
1927 pub Anonymous: USB_DEFAULT_PIPE_SETUP_PACKET_1_0,
1928 pub W: u16,
1929 }
1930 impl ::core::marker::Copy for USB_DEFAULT_PIPE_SETUP_PACKET_1 {}
1931 impl ::core::clone::Clone for USB_DEFAULT_PIPE_SETUP_PACKET_1 {
1932 fn clone(&self) -> Self {
1933 *self
1934 }
1935 }
1936 #[repr(C)]
1937 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1938 pub struct USB_DEFAULT_PIPE_SETUP_PACKET_1_0 {
1939 pub LowByte: u8,
1940 pub HiByte: u8,
1941 }
1942 impl ::core::marker::Copy for USB_DEFAULT_PIPE_SETUP_PACKET_1_0 {}
1943 impl ::core::clone::Clone for USB_DEFAULT_PIPE_SETUP_PACKET_1_0 {
1944 fn clone(&self) -> Self {
1945 *self
1946 }
1947 }
1948 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1949 pub const USB_DEVICE_CAPABILITY_BATTERY_INFO: u32 = 7u32;
1950 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1951 pub const USB_DEVICE_CAPABILITY_BILLBOARD: u32 = 13u32;
1952 #[repr(C, packed(1))]
1953 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1954 pub struct USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR {
1955 pub bLength: u8,
1956 pub bDescriptorType: u8,
1957 pub bDevCapabilityType: u8,
1958 pub iAddtionalInfoURL: u8,
1959 pub bNumberOfAlternateModes: u8,
1960 pub bPreferredAlternateMode: u8,
1961 pub VconnPower: USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1,
1962 pub bmConfigured: [u8; 32],
1963 pub bReserved: u32,
1964 pub AlternateMode: [USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_0; 1],
1965 }
1966 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR {}
1967 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR {
1968 fn clone(&self) -> Self {
1969 *self
1970 }
1971 }
1972 #[repr(C, packed(1))]
1973 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1974 pub struct USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_0 {
1975 pub wSVID: u16,
1976 pub bAlternateMode: u8,
1977 pub iAlternateModeSetting: u8,
1978 }
1979 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_0 {}
1980 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_0 {
1981 fn clone(&self) -> Self {
1982 *self
1983 }
1984 }
1985 #[repr(C, packed(1))]
1986 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1987 pub union USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1 {
1988 pub AsUshort: u16,
1989 pub Anonymous: USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1_0,
1990 }
1991 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1 {}
1992 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1 {
1993 fn clone(&self) -> Self {
1994 *self
1995 }
1996 }
1997 #[repr(C, packed(1))]
1998 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
1999 pub struct USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1_0 {
2000 pub _bitfield: u16,
2001 }
2002 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1_0 {}
2003 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_1_0 {
2004 fn clone(&self) -> Self {
2005 *self
2006 }
2007 }
2008 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2009 pub const USB_DEVICE_CAPABILITY_CONTAINER_ID: u32 = 4u32;
2010 #[repr(C)]
2011 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2012 pub struct USB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR {
2013 pub bLength: u8,
2014 pub bDescriptorType: u8,
2015 pub bDevCapabilityType: u8,
2016 pub bReserved: u8,
2017 pub ContainerID: [u8; 16],
2018 }
2019 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR {}
2020 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR {
2021 fn clone(&self) -> Self {
2022 *self
2023 }
2024 }
2025 #[repr(C)]
2026 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2027 pub struct USB_DEVICE_CAPABILITY_DESCRIPTOR {
2028 pub bLength: u8,
2029 pub bDescriptorType: u8,
2030 pub bDevCapabilityType: u8,
2031 }
2032 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_DESCRIPTOR {}
2033 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_DESCRIPTOR {
2034 fn clone(&self) -> Self {
2035 *self
2036 }
2037 }
2038 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2039 pub const USB_DEVICE_CAPABILITY_DESCRIPTOR_TYPE: u32 = 16u32;
2040 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2041 pub const USB_DEVICE_CAPABILITY_FIRMWARE_STATUS: u32 = 17u32;
2042 #[repr(C)]
2043 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2044 pub struct USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR {
2045 pub bLength: u8,
2046 pub bDescriptorType: u8,
2047 pub bDevCapabilityType: u8,
2048 pub bcdDescriptorVersion: u8,
2049 pub bmAttributes: USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0,
2050 }
2051 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR {}
2052 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR {
2053 fn clone(&self) -> Self {
2054 *self
2055 }
2056 }
2057 #[repr(C, packed(1))]
2058 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2059 pub union USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0 {
2060 pub AsUlong: u32,
2061 pub Anonymous: USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0_0,
2062 }
2063 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0 {}
2064 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0 {
2065 fn clone(&self) -> Self {
2066 *self
2067 }
2068 }
2069 #[repr(C, packed(1))]
2070 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2071 pub struct USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0_0 {
2072 pub _bitfield: u32,
2073 }
2074 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0_0 {}
2075 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_FIRMWARE_STATUS_DESCRIPTOR_0_0 {
2076 fn clone(&self) -> Self {
2077 *self
2078 }
2079 }
2080 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2081 pub const USB_DEVICE_CAPABILITY_MAX_U1_LATENCY: u32 = 10u32;
2082 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2083 pub const USB_DEVICE_CAPABILITY_MAX_U2_LATENCY: u32 = 2047u32;
2084 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2085 pub const USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT: u32 = 8u32;
2086 #[repr(C, packed(1))]
2087 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2088 pub struct USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR {
2089 pub bLength: u8,
2090 pub bDescriptorType: u8,
2091 pub bDevCapabilityType: u8,
2092 pub bReserved: u8,
2093 pub bmCapabilities: USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0,
2094 pub wMinVoltage: u16,
2095 pub wMaxVoltage: u16,
2096 pub wReserved: u16,
2097 pub dwMaxOperatingPower: u32,
2098 pub dwMaxPeakPower: u32,
2099 pub dwMaxPeakPowerTime: u32,
2100 }
2101 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR {}
2102 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR {
2103 fn clone(&self) -> Self {
2104 *self
2105 }
2106 }
2107 #[repr(C, packed(1))]
2108 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2109 pub union USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0 {
2110 pub AsUshort: u16,
2111 pub Anonymous: USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0_0,
2112 }
2113 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0 {}
2114 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0 {
2115 fn clone(&self) -> Self {
2116 *self
2117 }
2118 }
2119 #[repr(C, packed(1))]
2120 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2121 pub struct USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0_0 {
2122 pub _bitfield: u16,
2123 }
2124 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0_0 {}
2125 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_0_0 {
2126 fn clone(&self) -> Self {
2127 *self
2128 }
2129 }
2130 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2131 pub const USB_DEVICE_CAPABILITY_PD_PROVIDER_PORT: u32 = 9u32;
2132 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2133 pub const USB_DEVICE_CAPABILITY_PLATFORM: u32 = 5u32;
2134 #[repr(C, packed(1))]
2135 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2136 pub struct USB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR {
2137 pub bLength: u8,
2138 pub bDescriptorType: u8,
2139 pub bDevCapabilityType: u8,
2140 pub bReserved: u8,
2141 pub PlatformCapabilityUuid: ::windows_sys::core::GUID,
2142 pub CapabililityData: [u8; 1],
2143 }
2144 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR {}
2145 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR {
2146 fn clone(&self) -> Self {
2147 *self
2148 }
2149 }
2150 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2151 pub const USB_DEVICE_CAPABILITY_POWER_DELIVERY: u32 = 6u32;
2152 #[repr(C, packed(1))]
2153 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2154 pub struct USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR {
2155 pub bLength: u8,
2156 pub bDescriptorType: u8,
2157 pub bDevCapabilityType: u8,
2158 pub bReserved: u8,
2159 pub bmAttributes: USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0,
2160 pub bmProviderPorts: u16,
2161 pub bmConsumerPorts: u16,
2162 pub bcdBCVersion: u16,
2163 pub bcdPDVersion: u16,
2164 pub bcdUSBTypeCVersion: u16,
2165 }
2166 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR {}
2167 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR {
2168 fn clone(&self) -> Self {
2169 *self
2170 }
2171 }
2172 #[repr(C, packed(1))]
2173 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2174 pub union USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0 {
2175 pub AsUlong: u32,
2176 pub Anonymous: USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0_0,
2177 }
2178 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0 {}
2179 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0 {
2180 fn clone(&self) -> Self {
2181 *self
2182 }
2183 }
2184 #[repr(C, packed(1))]
2185 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2186 pub struct USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0_0 {
2187 pub _bitfield: u32,
2188 }
2189 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0_0 {}
2190 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_0_0 {
2191 fn clone(&self) -> Self {
2192 *self
2193 }
2194 }
2195 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2196 pub const USB_DEVICE_CAPABILITY_PRECISION_TIME_MEASUREMENT: u32 = 11u32;
2197 #[repr(C, packed(1))]
2198 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2199 pub union USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED {
2200 pub AsUlong32: u32,
2201 pub Anonymous: USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_0,
2202 }
2203 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED {}
2204 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED {
2205 fn clone(&self) -> Self {
2206 *self
2207 }
2208 }
2209 #[repr(C, packed(1))]
2210 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2211 pub struct USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_0 {
2212 pub _bitfield: u32,
2213 }
2214 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_0 {}
2215 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_0 {
2216 fn clone(&self) -> Self {
2217 *self
2218 }
2219 }
2220 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2221 pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_DIR_RX: u32 = 0u32;
2222 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2223 pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_DIR_TX: u32 = 1u32;
2224 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2225 pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_BPS: u32 = 0u32;
2226 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2227 pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_GBPS: u32 = 3u32;
2228 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2229 pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_KBPS: u32 = 1u32;
2230 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2231 pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_MBPS: u32 = 2u32;
2232 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2233 pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_MODE_ASYMMETRIC: u32 = 1u32;
2234 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2235 pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_MODE_SYMMETRIC: u32 = 0u32;
2236 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2237 pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_PROTOCOL_SS: u32 = 0u32;
2238 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2239 pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_PROTOCOL_SSP: u32 = 1u32;
2240 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2241 pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB: u32 = 10u32;
2242 #[repr(C, packed(1))]
2243 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2244 pub struct USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR {
2245 pub bLength: u8,
2246 pub bDescriptorType: u8,
2247 pub bDevCapabilityType: u8,
2248 pub bReserved: u8,
2249 pub bmAttributes: USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0,
2250 pub wFunctionalitySupport: USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1,
2251 pub wReserved: u16,
2252 pub bmSublinkSpeedAttr: [USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED; 1],
2253 }
2254 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR {}
2255 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR {
2256 fn clone(&self) -> Self {
2257 *self
2258 }
2259 }
2260 #[repr(C, packed(1))]
2261 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2262 pub union USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0 {
2263 pub AsUlong: u32,
2264 pub Anonymous: USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0_0,
2265 }
2266 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0 {}
2267 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0 {
2268 fn clone(&self) -> Self {
2269 *self
2270 }
2271 }
2272 #[repr(C, packed(1))]
2273 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2274 pub struct USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0_0 {
2275 pub _bitfield: u32,
2276 }
2277 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0_0 {}
2278 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_0_0 {
2279 fn clone(&self) -> Self {
2280 *self
2281 }
2282 }
2283 #[repr(C, packed(1))]
2284 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2285 pub union USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1 {
2286 pub AsUshort: u16,
2287 pub Anonymous: USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1_0,
2288 }
2289 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1 {}
2290 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1 {
2291 fn clone(&self) -> Self {
2292 *self
2293 }
2294 }
2295 #[repr(C, packed(1))]
2296 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2297 pub struct USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1_0 {
2298 pub _bitfield: u16,
2299 }
2300 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1_0 {}
2301 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_1_0 {
2302 fn clone(&self) -> Self {
2303 *self
2304 }
2305 }
2306 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2307 pub const USB_DEVICE_CAPABILITY_SUPERSPEED_BMATTRIBUTES_LTM_CAPABLE: u32 = 2u32;
2308 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2309 pub const USB_DEVICE_CAPABILITY_SUPERSPEED_BMATTRIBUTES_RESERVED_MASK: u32 = 253u32;
2310 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2311 pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_FULL: u32 = 2u32;
2312 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2313 pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_HIGH: u32 = 4u32;
2314 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2315 pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_LOW: u32 = 1u32;
2316 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2317 pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_RESERVED_MASK: u32 = 65520u32;
2318 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2319 pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_SUPER: u32 = 8u32;
2320 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2321 pub const USB_DEVICE_CAPABILITY_SUPERSPEED_U1_DEVICE_EXIT_MAX_VALUE: u32 = 10u32;
2322 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2323 pub const USB_DEVICE_CAPABILITY_SUPERSPEED_U2_DEVICE_EXIT_MAX_VALUE: u32 = 2047u32;
2324 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2325 pub const USB_DEVICE_CAPABILITY_SUPERSPEED_USB: u32 = 3u32;
2326 #[repr(C, packed(1))]
2327 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2328 pub struct USB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR {
2329 pub bLength: u8,
2330 pub bDescriptorType: u8,
2331 pub bDevCapabilityType: u8,
2332 pub bmAttributes: u8,
2333 pub wSpeedsSupported: u16,
2334 pub bFunctionalitySupport: u8,
2335 pub bU1DevExitLat: u8,
2336 pub wU2DevExitLat: u16,
2337 }
2338 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR {}
2339 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR {
2340 fn clone(&self) -> Self {
2341 *self
2342 }
2343 }
2344 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2345 pub const USB_DEVICE_CAPABILITY_USB20_EXTENSION: u32 = 2u32;
2346 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2347 pub const USB_DEVICE_CAPABILITY_USB20_EXTENSION_BMATTRIBUTES_RESERVED_MASK: u32 = 4294901985u32;
2348 #[repr(C)]
2349 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2350 pub struct USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR {
2351 pub bLength: u8,
2352 pub bDescriptorType: u8,
2353 pub bDevCapabilityType: u8,
2354 pub bmAttributes: USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0,
2355 }
2356 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR {}
2357 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR {
2358 fn clone(&self) -> Self {
2359 *self
2360 }
2361 }
2362 #[repr(C, packed(1))]
2363 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2364 pub union USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0 {
2365 pub AsUlong: u32,
2366 pub Anonymous: USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0_0,
2367 }
2368 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0 {}
2369 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0 {
2370 fn clone(&self) -> Self {
2371 *self
2372 }
2373 }
2374 #[repr(C, packed(1))]
2375 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2376 pub struct USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0_0 {
2377 pub _bitfield: u32,
2378 }
2379 impl ::core::marker::Copy for USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0_0 {}
2380 impl ::core::clone::Clone for USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_0_0 {
2381 fn clone(&self) -> Self {
2382 *self
2383 }
2384 }
2385 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2386 pub const USB_DEVICE_CAPABILITY_WIRELESS_USB: u32 = 1u32;
2387 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2388 pub const USB_DEVICE_CHARACTERISTICS_MAXIMUM_PATH_DELAYS_AVAILABLE: u32 = 1u32;
2389 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2390 pub const USB_DEVICE_CHARACTERISTICS_VERSION_1: u32 = 1u32;
2391 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2392 pub const USB_DEVICE_CLASS_APPLICATION_SPECIFIC: u32 = 254u32;
2393 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2394 pub const USB_DEVICE_CLASS_AUDIO: u32 = 1u32;
2395 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2396 pub const USB_DEVICE_CLASS_AUDIO_VIDEO: u32 = 16u32;
2397 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2398 pub const USB_DEVICE_CLASS_BILLBOARD: u32 = 17u32;
2399 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2400 pub const USB_DEVICE_CLASS_CDC_DATA: u32 = 10u32;
2401 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2402 pub const USB_DEVICE_CLASS_COMMUNICATIONS: u32 = 2u32;
2403 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2404 pub const USB_DEVICE_CLASS_CONTENT_SECURITY: u32 = 13u32;
2405 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2406 pub const USB_DEVICE_CLASS_DIAGNOSTIC_DEVICE: u32 = 220u32;
2407 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2408 pub const USB_DEVICE_CLASS_HUB: u32 = 9u32;
2409 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2410 pub const USB_DEVICE_CLASS_HUMAN_INTERFACE: u32 = 3u32;
2411 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2412 pub const USB_DEVICE_CLASS_IMAGE: u32 = 6u32;
2413 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2414 pub const USB_DEVICE_CLASS_MISCELLANEOUS: u32 = 239u32;
2415 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2416 pub const USB_DEVICE_CLASS_MONITOR: u32 = 4u32;
2417 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2418 pub const USB_DEVICE_CLASS_PERSONAL_HEALTHCARE: u32 = 15u32;
2419 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2420 pub const USB_DEVICE_CLASS_PHYSICAL_INTERFACE: u32 = 5u32;
2421 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2422 pub const USB_DEVICE_CLASS_POWER: u32 = 6u32;
2423 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2424 pub const USB_DEVICE_CLASS_PRINTER: u32 = 7u32;
2425 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2426 pub const USB_DEVICE_CLASS_RESERVED: u32 = 0u32;
2427 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2428 pub const USB_DEVICE_CLASS_SMART_CARD: u32 = 11u32;
2429 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2430 pub const USB_DEVICE_CLASS_STORAGE: u32 = 8u32;
2431 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2432 pub const USB_DEVICE_CLASS_VENDOR_SPECIFIC: u32 = 255u32;
2433 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2434 pub const USB_DEVICE_CLASS_VIDEO: u32 = 14u32;
2435 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2436 pub const USB_DEVICE_CLASS_WIRELESS_CONTROLLER: u32 = 224u32;
2437 #[repr(C, packed(1))]
2438 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2439 pub struct USB_DEVICE_DESCRIPTOR {
2440 pub bLength: u8,
2441 pub bDescriptorType: u8,
2442 pub bcdUSB: u16,
2443 pub bDeviceClass: u8,
2444 pub bDeviceSubClass: u8,
2445 pub bDeviceProtocol: u8,
2446 pub bMaxPacketSize0: u8,
2447 pub idVendor: u16,
2448 pub idProduct: u16,
2449 pub bcdDevice: u16,
2450 pub iManufacturer: u8,
2451 pub iProduct: u8,
2452 pub iSerialNumber: u8,
2453 pub bNumConfigurations: u8,
2454 }
2455 impl ::core::marker::Copy for USB_DEVICE_DESCRIPTOR {}
2456 impl ::core::clone::Clone for USB_DEVICE_DESCRIPTOR {
2457 fn clone(&self) -> Self {
2458 *self
2459 }
2460 }
2461 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2462 pub const USB_DEVICE_DESCRIPTOR_TYPE: u32 = 1u32;
2463 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2464 pub const USB_DEVICE_FIRMWARE_HASH_LENGTH: u32 = 32u32;
2465 #[repr(C, packed(1))]
2466 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2467 pub struct USB_DEVICE_QUALIFIER_DESCRIPTOR {
2468 pub bLength: u8,
2469 pub bDescriptorType: u8,
2470 pub bcdUSB: u16,
2471 pub bDeviceClass: u8,
2472 pub bDeviceSubClass: u8,
2473 pub bDeviceProtocol: u8,
2474 pub bMaxPacketSize0: u8,
2475 pub bNumConfigurations: u8,
2476 pub bReserved: u8,
2477 }
2478 impl ::core::marker::Copy for USB_DEVICE_QUALIFIER_DESCRIPTOR {}
2479 impl ::core::clone::Clone for USB_DEVICE_QUALIFIER_DESCRIPTOR {
2480 fn clone(&self) -> Self {
2481 *self
2482 }
2483 }
2484 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2485 pub const USB_DEVICE_QUALIFIER_DESCRIPTOR_TYPE: u32 = 6u32;
2486 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2487 pub type USB_DEVICE_SPEED = i32;
2488 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2489 pub const UsbLowSpeed: USB_DEVICE_SPEED = 0i32;
2490 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2491 pub const UsbFullSpeed: USB_DEVICE_SPEED = 1i32;
2492 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2493 pub const UsbHighSpeed: USB_DEVICE_SPEED = 2i32;
2494 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2495 pub const UsbSuperSpeed: USB_DEVICE_SPEED = 3i32;
2496 #[repr(C, packed(1))]
2497 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2498 pub union USB_DEVICE_STATUS {
2499 pub AsUshort16: u16,
2500 pub Anonymous: USB_DEVICE_STATUS_0,
2501 }
2502 impl ::core::marker::Copy for USB_DEVICE_STATUS {}
2503 impl ::core::clone::Clone for USB_DEVICE_STATUS {
2504 fn clone(&self) -> Self {
2505 *self
2506 }
2507 }
2508 #[repr(C, packed(1))]
2509 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2510 pub struct USB_DEVICE_STATUS_0 {
2511 pub _bitfield: u16,
2512 }
2513 impl ::core::marker::Copy for USB_DEVICE_STATUS_0 {}
2514 impl ::core::clone::Clone for USB_DEVICE_STATUS_0 {
2515 fn clone(&self) -> Self {
2516 *self
2517 }
2518 }
2519 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2520 pub type USB_DEVICE_TYPE = i32;
2521 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2522 pub const Usb11Device: USB_DEVICE_TYPE = 0i32;
2523 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2524 pub const Usb20Device: USB_DEVICE_TYPE = 1i32;
2525 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2526 pub const USB_DIAG_IGNORE_HUBS_OFF: u32 = 263u32;
2527 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2528 pub const USB_DIAG_IGNORE_HUBS_ON: u32 = 262u32;
2529 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2530 pub const USB_DISALLOW_FIRMWARE_UPDATE: u32 = 0u32;
2531 #[repr(C, packed(1))]
2532 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
2533 #[cfg(feature = "Win32_Foundation")]
2534 pub struct USB_DRIVER_VERSION_PARAMETERS {
2535 pub DriverTrackingCode: u32,
2536 pub USBDI_Version: u32,
2537 pub USBUSER_Version: u32,
2538 pub CheckedPortDriver: super::super::Foundation::BOOLEAN,
2539 pub CheckedMiniportDriver: super::super::Foundation::BOOLEAN,
2540 pub USB_Version: u16,
2541 }
2542 #[cfg(feature = "Win32_Foundation")]
2543 impl ::core::marker::Copy for USB_DRIVER_VERSION_PARAMETERS {}
2544 #[cfg(feature = "Win32_Foundation")]
2545 impl ::core::clone::Clone for USB_DRIVER_VERSION_PARAMETERS {
2546 fn clone(&self) -> Self {
2547 *self
2548 }
2549 }
2550 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2551 pub const USB_ENABLE_PORT: u32 = 5u32;
2552 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2553 pub const USB_ENDPOINT_ADDRESS_MASK: u32 = 15u32;
2554 #[repr(C, packed(1))]
2555 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2556 pub struct USB_ENDPOINT_DESCRIPTOR {
2557 pub bLength: u8,
2558 pub bDescriptorType: u8,
2559 pub bEndpointAddress: u8,
2560 pub bmAttributes: u8,
2561 pub wMaxPacketSize: u16,
2562 pub bInterval: u8,
2563 }
2564 impl ::core::marker::Copy for USB_ENDPOINT_DESCRIPTOR {}
2565 impl ::core::clone::Clone for USB_ENDPOINT_DESCRIPTOR {
2566 fn clone(&self) -> Self {
2567 *self
2568 }
2569 }
2570 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2571 pub const USB_ENDPOINT_DESCRIPTOR_TYPE: u32 = 5u32;
2572 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2573 pub const USB_ENDPOINT_DIRECTION_MASK: u32 = 128u32;
2574 #[repr(C, packed(1))]
2575 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2576 pub union USB_ENDPOINT_STATUS {
2577 pub AsUshort16: u16,
2578 pub Anonymous: USB_ENDPOINT_STATUS_0,
2579 }
2580 impl ::core::marker::Copy for USB_ENDPOINT_STATUS {}
2581 impl ::core::clone::Clone for USB_ENDPOINT_STATUS {
2582 fn clone(&self) -> Self {
2583 *self
2584 }
2585 }
2586 #[repr(C, packed(1))]
2587 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2588 pub struct USB_ENDPOINT_STATUS_0 {
2589 pub _bitfield: u16,
2590 }
2591 impl ::core::marker::Copy for USB_ENDPOINT_STATUS_0 {}
2592 impl ::core::clone::Clone for USB_ENDPOINT_STATUS_0 {
2593 fn clone(&self) -> Self {
2594 *self
2595 }
2596 }
2597 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2598 pub const USB_ENDPOINT_SUPERSPEED_BULK_MAX_PACKET_SIZE: u32 = 1024u32;
2599 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2600 pub const USB_ENDPOINT_SUPERSPEED_CONTROL_MAX_PACKET_SIZE: u32 = 512u32;
2601 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2602 pub const USB_ENDPOINT_SUPERSPEED_INTERRUPT_MAX_PACKET_SIZE: u32 = 1024u32;
2603 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2604 pub const USB_ENDPOINT_SUPERSPEED_ISO_MAX_PACKET_SIZE: u32 = 1024u32;
2605 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2606 pub const USB_ENDPOINT_TYPE_BULK: u32 = 2u32;
2607 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2608 pub const USB_ENDPOINT_TYPE_BULK_RESERVED_MASK: u32 = 252u32;
2609 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2610 pub const USB_ENDPOINT_TYPE_CONTROL: u32 = 0u32;
2611 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2612 pub const USB_ENDPOINT_TYPE_CONTROL_RESERVED_MASK: u32 = 252u32;
2613 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2614 pub const USB_ENDPOINT_TYPE_INTERRUPT: u32 = 3u32;
2615 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2616 pub const USB_ENDPOINT_TYPE_ISOCHRONOUS: u32 = 1u32;
2617 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2618 pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_RESERVED_MASK: u32 = 192u32;
2619 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2620 pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_ADAPTIVE: u32 = 8u32;
2621 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2622 pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_ASYNCHRONOUS: u32 = 4u32;
2623 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2624 pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_MASK: u32 = 12u32;
2625 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2626 pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_NO_SYNCHRONIZATION: u32 = 0u32;
2627 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2628 pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_SYNCHRONOUS: u32 = 12u32;
2629 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2630 pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_DATA_ENDOINT: u32 = 0u32;
2631 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2632 pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_FEEDBACK_ENDPOINT: u32 = 16u32;
2633 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2634 pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_IMPLICIT_FEEDBACK_DATA_ENDPOINT: u32 = 32u32;
2635 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2636 pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_MASK: u32 = 48u32;
2637 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2638 pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_RESERVED: u32 = 48u32;
2639 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2640 pub const USB_ENDPOINT_TYPE_MASK: u32 = 3u32;
2641 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2642 pub const USB_FAIL_GET_STATUS: u32 = 280u32;
2643 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2644 pub const USB_FEATURE_BATTERY_WAKE_MASK: u32 = 40u32;
2645 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2646 pub const USB_FEATURE_CHARGING_POLICY: u32 = 54u32;
2647 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2648 pub const USB_FEATURE_ENDPOINT_STALL: u32 = 0u32;
2649 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2650 pub const USB_FEATURE_FUNCTION_SUSPEND: u32 = 0u32;
2651 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2652 pub const USB_FEATURE_INTERFACE_POWER_D0: u32 = 2u32;
2653 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2654 pub const USB_FEATURE_INTERFACE_POWER_D1: u32 = 3u32;
2655 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2656 pub const USB_FEATURE_INTERFACE_POWER_D2: u32 = 4u32;
2657 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2658 pub const USB_FEATURE_INTERFACE_POWER_D3: u32 = 5u32;
2659 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2660 pub const USB_FEATURE_LDM_ENABLE: u32 = 53u32;
2661 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2662 pub const USB_FEATURE_LTM_ENABLE: u32 = 50u32;
2663 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2664 pub const USB_FEATURE_OS_IS_PD_AWARE: u32 = 41u32;
2665 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2666 pub const USB_FEATURE_POLICY_MODE: u32 = 42u32;
2667 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2668 pub const USB_FEATURE_REMOTE_WAKEUP: u32 = 1u32;
2669 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2670 pub const USB_FEATURE_TEST_MODE: u32 = 2u32;
2671 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2672 pub const USB_FEATURE_U1_ENABLE: u32 = 48u32;
2673 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2674 pub const USB_FEATURE_U2_ENABLE: u32 = 49u32;
2675 #[repr(C, packed(1))]
2676 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
2677 #[cfg(feature = "Win32_Foundation")]
2678 pub struct USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION {
2679 pub TimeTrackingHandle: super::super::Foundation::HANDLE,
2680 pub InputFrameNumber: u32,
2681 pub InputMicroFrameNumber: u32,
2682 pub QueryPerformanceCounterAtInputFrameOrMicroFrame: i64,
2683 pub QueryPerformanceCounterFrequency: i64,
2684 pub PredictedAccuracyInMicroSeconds: u32,
2685 pub CurrentGenerationID: u32,
2686 pub CurrentQueryPerformanceCounter: i64,
2687 pub CurrentHardwareFrameNumber: u32,
2688 pub CurrentHardwareMicroFrameNumber: u32,
2689 pub CurrentUSBFrameNumber: u32,
2690 }
2691 #[cfg(feature = "Win32_Foundation")]
2692 impl ::core::marker::Copy for USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION {}
2693 #[cfg(feature = "Win32_Foundation")]
2694 impl ::core::clone::Clone for USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION {
2695 fn clone(&self) -> Self {
2696 *self
2697 }
2698 }
2699 #[repr(C)]
2700 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2701 pub union USB_FUNCTION_SUSPEND_OPTIONS {
2702 pub AsUchar: u8,
2703 pub Anonymous: USB_FUNCTION_SUSPEND_OPTIONS_0,
2704 }
2705 impl ::core::marker::Copy for USB_FUNCTION_SUSPEND_OPTIONS {}
2706 impl ::core::clone::Clone for USB_FUNCTION_SUSPEND_OPTIONS {
2707 fn clone(&self) -> Self {
2708 *self
2709 }
2710 }
2711 #[repr(C)]
2712 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2713 pub struct USB_FUNCTION_SUSPEND_OPTIONS_0 {
2714 pub _bitfield: u8,
2715 }
2716 impl ::core::marker::Copy for USB_FUNCTION_SUSPEND_OPTIONS_0 {}
2717 impl ::core::clone::Clone for USB_FUNCTION_SUSPEND_OPTIONS_0 {
2718 fn clone(&self) -> Self {
2719 *self
2720 }
2721 }
2722 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2723 pub const USB_GETSTATUS_LTM_ENABLE: u32 = 16u32;
2724 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2725 pub const USB_GETSTATUS_REMOTE_WAKEUP_ENABLED: u32 = 2u32;
2726 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2727 pub const USB_GETSTATUS_SELF_POWERED: u32 = 1u32;
2728 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2729 pub const USB_GETSTATUS_U1_ENABLE: u32 = 4u32;
2730 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2731 pub const USB_GETSTATUS_U2_ENABLE: u32 = 8u32;
2732 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2733 pub const USB_GET_BUSGUID_INFO: u32 = 266u32;
2734 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2735 pub const USB_GET_BUS_INFO: u32 = 264u32;
2736 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2737 pub const USB_GET_CONTROLLER_NAME: u32 = 265u32;
2738 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2739 pub const USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION: u32 = 260u32;
2740 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2741 pub const USB_GET_DEVICE_CHARACTERISTICS: u32 = 288u32;
2742 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2743 pub const USB_GET_DEVICE_HANDLE: u32 = 268u32;
2744 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2745 pub const USB_GET_DEVICE_HANDLE_EX: u32 = 269u32;
2746 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2747 pub const USB_GET_FIRMWARE_ALLOWED_OR_DISALLOWED_STATE: u32 = 0u32;
2748 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2749 pub const USB_GET_FIRMWARE_HASH: u32 = 1u32;
2750 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2751 pub const USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC: u32 = 286u32;
2752 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2753 pub const USB_GET_HUB_CAPABILITIES: u32 = 271u32;
2754 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2755 pub const USB_GET_HUB_CAPABILITIES_EX: u32 = 276u32;
2756 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2757 pub const USB_GET_HUB_CONFIG_INFO: u32 = 275u32;
2758 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2759 pub const USB_GET_HUB_COUNT: u32 = 6u32;
2760 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2761 pub const USB_GET_HUB_INFORMATION_EX: u32 = 277u32;
2762 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2763 pub const USB_GET_HUB_NAME: u32 = 8u32;
2764 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2765 pub const USB_GET_NODE_CONNECTION_ATTRIBUTES: u32 = 272u32;
2766 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2767 pub const USB_GET_NODE_CONNECTION_DRIVERKEY_NAME: u32 = 264u32;
2768 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2769 pub const USB_GET_NODE_CONNECTION_INFORMATION: u32 = 259u32;
2770 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2771 pub const USB_GET_NODE_CONNECTION_INFORMATION_EX: u32 = 274u32;
2772 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2773 pub const USB_GET_NODE_CONNECTION_INFORMATION_EX_V2: u32 = 279u32;
2774 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2775 pub const USB_GET_NODE_CONNECTION_NAME: u32 = 261u32;
2776 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2777 pub const USB_GET_NODE_INFORMATION: u32 = 258u32;
2778 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2779 pub const USB_GET_PARENT_HUB_INFO: u32 = 267u32;
2780 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2781 pub const USB_GET_PORT_CONNECTOR_PROPERTIES: u32 = 278u32;
2782 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2783 pub const USB_GET_PORT_STATUS: u32 = 4u32;
2784 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2785 pub const USB_GET_ROOTHUB_PDO: u32 = 3u32;
2786 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2787 pub const USB_GET_TOPOLOGY_ADDRESS: u32 = 271u32;
2788 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2789 pub const USB_GET_TRANSPORT_CHARACTERISTICS: u32 = 281u32;
2790 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2791 pub const USB_GET_TT_DEVICE_HANDLE: u32 = 270u32;
2792 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2793 pub const USB_HC_FEATURE_FLAG_PORT_POWER_SWITCHING: u32 = 1u32;
2794 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2795 pub const USB_HC_FEATURE_FLAG_SEL_SUSPEND: u32 = 2u32;
2796 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2797 pub const USB_HC_FEATURE_LEGACY_BIOS: u32 = 4u32;
2798 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2799 pub const USB_HC_FEATURE_TIME_SYNC_API: u32 = 8u32;
2800 #[repr(C, packed(1))]
2801 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2802 pub union USB_HIGH_SPEED_MAXPACKET {
2803 pub us: u16,
2804 }
2805 impl ::core::marker::Copy for USB_HIGH_SPEED_MAXPACKET {}
2806 impl ::core::clone::Clone for USB_HIGH_SPEED_MAXPACKET {
2807 fn clone(&self) -> Self {
2808 *self
2809 }
2810 }
2811 #[repr(C, packed(1))]
2812 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2813 pub struct USB_HIGH_SPEED_MAXPACKET_0 {
2814 pub _bitfield: u16,
2815 }
2816 impl ::core::marker::Copy for USB_HIGH_SPEED_MAXPACKET_0 {}
2817 impl ::core::clone::Clone for USB_HIGH_SPEED_MAXPACKET_0 {
2818 fn clone(&self) -> Self {
2819 *self
2820 }
2821 }
2822 #[repr(C)]
2823 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2824 pub union USB_HUB_30_PORT_REMOTE_WAKE_MASK {
2825 pub AsUchar8: u8,
2826 pub Anonymous: USB_HUB_30_PORT_REMOTE_WAKE_MASK_0,
2827 }
2828 impl ::core::marker::Copy for USB_HUB_30_PORT_REMOTE_WAKE_MASK {}
2829 impl ::core::clone::Clone for USB_HUB_30_PORT_REMOTE_WAKE_MASK {
2830 fn clone(&self) -> Self {
2831 *self
2832 }
2833 }
2834 #[repr(C)]
2835 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2836 pub struct USB_HUB_30_PORT_REMOTE_WAKE_MASK_0 {
2837 pub _bitfield: u8,
2838 }
2839 impl ::core::marker::Copy for USB_HUB_30_PORT_REMOTE_WAKE_MASK_0 {}
2840 impl ::core::clone::Clone for USB_HUB_30_PORT_REMOTE_WAKE_MASK_0 {
2841 fn clone(&self) -> Self {
2842 *self
2843 }
2844 }
2845 #[repr(C, packed(1))]
2846 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2847 pub union USB_HUB_CHANGE {
2848 pub AsUshort16: u16,
2849 pub Anonymous: USB_HUB_CHANGE_0,
2850 }
2851 impl ::core::marker::Copy for USB_HUB_CHANGE {}
2852 impl ::core::clone::Clone for USB_HUB_CHANGE {
2853 fn clone(&self) -> Self {
2854 *self
2855 }
2856 }
2857 #[repr(C, packed(1))]
2858 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2859 pub struct USB_HUB_CHANGE_0 {
2860 pub _bitfield: u16,
2861 }
2862 impl ::core::marker::Copy for USB_HUB_CHANGE_0 {}
2863 impl ::core::clone::Clone for USB_HUB_CHANGE_0 {
2864 fn clone(&self) -> Self {
2865 *self
2866 }
2867 }
2868 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2869 pub const USB_HUB_CYCLE_PORT: u32 = 273u32;
2870 #[repr(C, packed(1))]
2871 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2872 pub struct USB_HUB_DESCRIPTOR {
2873 pub bDescriptorLength: u8,
2874 pub bDescriptorType: u8,
2875 pub bNumberOfPorts: u8,
2876 pub wHubCharacteristics: u16,
2877 pub bPowerOnToPowerGood: u8,
2878 pub bHubControlCurrent: u8,
2879 pub bRemoveAndPowerMask: [u8; 64],
2880 }
2881 impl ::core::marker::Copy for USB_HUB_DESCRIPTOR {}
2882 impl ::core::clone::Clone for USB_HUB_DESCRIPTOR {
2883 fn clone(&self) -> Self {
2884 *self
2885 }
2886 }
2887 #[repr(C, packed(1))]
2888 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2889 pub union USB_HUB_STATUS {
2890 pub AsUshort16: u16,
2891 pub Anonymous: USB_HUB_STATUS_0,
2892 }
2893 impl ::core::marker::Copy for USB_HUB_STATUS {}
2894 impl ::core::clone::Clone for USB_HUB_STATUS {
2895 fn clone(&self) -> Self {
2896 *self
2897 }
2898 }
2899 #[repr(C, packed(1))]
2900 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2901 pub struct USB_HUB_STATUS_0 {
2902 pub _bitfield: u16,
2903 }
2904 impl ::core::marker::Copy for USB_HUB_STATUS_0 {}
2905 impl ::core::clone::Clone for USB_HUB_STATUS_0 {
2906 fn clone(&self) -> Self {
2907 *self
2908 }
2909 }
2910 #[repr(C, packed(1))]
2911 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2912 pub union USB_HUB_STATUS_AND_CHANGE {
2913 pub AsUlong32: u32,
2914 pub Anonymous: USB_HUB_STATUS_AND_CHANGE_0,
2915 }
2916 impl ::core::marker::Copy for USB_HUB_STATUS_AND_CHANGE {}
2917 impl ::core::clone::Clone for USB_HUB_STATUS_AND_CHANGE {
2918 fn clone(&self) -> Self {
2919 *self
2920 }
2921 }
2922 #[repr(C)]
2923 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2924 pub struct USB_HUB_STATUS_AND_CHANGE_0 {
2925 pub HubStatus: USB_HUB_STATUS,
2926 pub HubChange: USB_HUB_CHANGE,
2927 }
2928 impl ::core::marker::Copy for USB_HUB_STATUS_AND_CHANGE_0 {}
2929 impl ::core::clone::Clone for USB_HUB_STATUS_AND_CHANGE_0 {
2930 fn clone(&self) -> Self {
2931 *self
2932 }
2933 }
2934 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2935 pub type USB_IDLE_CALLBACK = ::core::option::Option<unsafe extern "system" fn(context: *const ::core::ffi::c_void)>;
2936 #[repr(C)]
2937 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2938 pub struct USB_IDLE_CALLBACK_INFO {
2939 pub IdleCallback: USB_IDLE_CALLBACK,
2940 pub IdleContext: *mut ::core::ffi::c_void,
2941 }
2942 impl ::core::marker::Copy for USB_IDLE_CALLBACK_INFO {}
2943 impl ::core::clone::Clone for USB_IDLE_CALLBACK_INFO {
2944 fn clone(&self) -> Self {
2945 *self
2946 }
2947 }
2948 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2949 pub const USB_IDLE_NOTIFICATION: u32 = 9u32;
2950 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2951 pub const USB_IDLE_NOTIFICATION_EX: u32 = 272u32;
2952 #[repr(C)]
2953 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2954 pub struct USB_INTERFACE_ASSOCIATION_DESCRIPTOR {
2955 pub bLength: u8,
2956 pub bDescriptorType: u8,
2957 pub bFirstInterface: u8,
2958 pub bInterfaceCount: u8,
2959 pub bFunctionClass: u8,
2960 pub bFunctionSubClass: u8,
2961 pub bFunctionProtocol: u8,
2962 pub iFunction: u8,
2963 }
2964 impl ::core::marker::Copy for USB_INTERFACE_ASSOCIATION_DESCRIPTOR {}
2965 impl ::core::clone::Clone for USB_INTERFACE_ASSOCIATION_DESCRIPTOR {
2966 fn clone(&self) -> Self {
2967 *self
2968 }
2969 }
2970 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2971 pub const USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE: u32 = 11u32;
2972 #[repr(C)]
2973 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2974 pub struct USB_INTERFACE_DESCRIPTOR {
2975 pub bLength: u8,
2976 pub bDescriptorType: u8,
2977 pub bInterfaceNumber: u8,
2978 pub bAlternateSetting: u8,
2979 pub bNumEndpoints: u8,
2980 pub bInterfaceClass: u8,
2981 pub bInterfaceSubClass: u8,
2982 pub bInterfaceProtocol: u8,
2983 pub iInterface: u8,
2984 }
2985 impl ::core::marker::Copy for USB_INTERFACE_DESCRIPTOR {}
2986 impl ::core::clone::Clone for USB_INTERFACE_DESCRIPTOR {
2987 fn clone(&self) -> Self {
2988 *self
2989 }
2990 }
2991 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2992 pub const USB_INTERFACE_DESCRIPTOR_TYPE: u32 = 4u32;
2993 #[repr(C, packed(1))]
2994 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
2995 pub struct USB_INTERFACE_POWER_DESCRIPTOR {
2996 pub bLength: u8,
2997 pub bDescriptorType: u8,
2998 pub bmCapabilitiesFlags: u8,
2999 pub bBusPowerSavingD1: u8,
3000 pub bSelfPowerSavingD1: u8,
3001 pub bBusPowerSavingD2: u8,
3002 pub bSelfPowerSavingD2: u8,
3003 pub bBusPowerSavingD3: u8,
3004 pub bSelfPowerSavingD3: u8,
3005 pub TransitionTimeFromD1: u16,
3006 pub TransitionTimeFromD2: u16,
3007 pub TransitionTimeFromD3: u16,
3008 }
3009 impl ::core::marker::Copy for USB_INTERFACE_POWER_DESCRIPTOR {}
3010 impl ::core::clone::Clone for USB_INTERFACE_POWER_DESCRIPTOR {
3011 fn clone(&self) -> Self {
3012 *self
3013 }
3014 }
3015 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3016 pub const USB_INTERFACE_POWER_DESCRIPTOR_TYPE: u32 = 8u32;
3017 #[repr(C, packed(1))]
3018 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3019 pub union USB_INTERFACE_STATUS {
3020 pub AsUshort16: u16,
3021 pub Anonymous: USB_INTERFACE_STATUS_0,
3022 }
3023 impl ::core::marker::Copy for USB_INTERFACE_STATUS {}
3024 impl ::core::clone::Clone for USB_INTERFACE_STATUS {
3025 fn clone(&self) -> Self {
3026 *self
3027 }
3028 }
3029 #[repr(C, packed(1))]
3030 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3031 pub struct USB_INTERFACE_STATUS_0 {
3032 pub _bitfield: u16,
3033 }
3034 impl ::core::marker::Copy for USB_INTERFACE_STATUS_0 {}
3035 impl ::core::clone::Clone for USB_INTERFACE_STATUS_0 {
3036 fn clone(&self) -> Self {
3037 *self
3038 }
3039 }
3040 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3041 pub const USB_NOTIFY_ON_TRANSPORT_CHARACTERISTICS_CHANGE: u32 = 283u32;
3042 #[repr(C, packed(1))]
3043 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3044 pub struct USB_OPEN_RAW_DEVICE_PARAMETERS {
3045 pub PortStatus: u16,
3046 pub MaxPacketEp0: u16,
3047 }
3048 impl ::core::marker::Copy for USB_OPEN_RAW_DEVICE_PARAMETERS {}
3049 impl ::core::clone::Clone for USB_OPEN_RAW_DEVICE_PARAMETERS {
3050 fn clone(&self) -> Self {
3051 *self
3052 }
3053 }
3054 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3055 pub const USB_OTG_DESCRIPTOR_TYPE: u32 = 9u32;
3056 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3057 pub const USB_OTHER_SPEED_CONFIGURATION_DESCRIPTOR_TYPE: u32 = 7u32;
3058 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3059 pub const USB_PACKETFLAG_ASYNC_IN: u32 = 8u32;
3060 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3061 pub const USB_PACKETFLAG_ASYNC_OUT: u32 = 16u32;
3062 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3063 pub const USB_PACKETFLAG_FULL_SPEED: u32 = 2u32;
3064 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3065 pub const USB_PACKETFLAG_HIGH_SPEED: u32 = 4u32;
3066 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3067 pub const USB_PACKETFLAG_ISO_IN: u32 = 32u32;
3068 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3069 pub const USB_PACKETFLAG_ISO_OUT: u32 = 64u32;
3070 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3071 pub const USB_PACKETFLAG_LOW_SPEED: u32 = 1u32;
3072 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3073 pub const USB_PACKETFLAG_SETUP: u32 = 128u32;
3074 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3075 pub const USB_PACKETFLAG_TOGGLE0: u32 = 256u32;
3076 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3077 pub const USB_PACKETFLAG_TOGGLE1: u32 = 512u32;
3078 #[repr(C, packed(1))]
3079 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3080 pub struct USB_PASS_THRU_PARAMETERS {
3081 pub FunctionGUID: ::windows_sys::core::GUID,
3082 pub ParameterLength: u32,
3083 pub Parameters: [u8; 4],
3084 }
3085 impl ::core::marker::Copy for USB_PASS_THRU_PARAMETERS {}
3086 impl ::core::clone::Clone for USB_PASS_THRU_PARAMETERS {
3087 fn clone(&self) -> Self {
3088 *self
3089 }
3090 }
3091 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3092 pub const USB_PORTATTR_MINI_CONNECTOR: u32 = 4u32;
3093 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3094 pub const USB_PORTATTR_NO_CONNECTOR: u32 = 1u32;
3095 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3096 pub const USB_PORTATTR_NO_OVERCURRENT_UI: u32 = 33554432u32;
3097 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3098 pub const USB_PORTATTR_OEM_CONNECTOR: u32 = 8u32;
3099 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3100 pub const USB_PORTATTR_OWNED_BY_CC: u32 = 16777216u32;
3101 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3102 pub const USB_PORTATTR_SHARED_USB2: u32 = 2u32;
3103 #[repr(C, packed(1))]
3104 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3105 pub union USB_PORT_CHANGE {
3106 pub AsUshort16: u16,
3107 pub Usb20PortChange: USB_20_PORT_CHANGE,
3108 pub Usb30PortChange: USB_30_PORT_CHANGE,
3109 }
3110 impl ::core::marker::Copy for USB_PORT_CHANGE {}
3111 impl ::core::clone::Clone for USB_PORT_CHANGE {
3112 fn clone(&self) -> Self {
3113 *self
3114 }
3115 }
3116 #[repr(C, packed(1))]
3117 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3118 pub union USB_PORT_EXT_STATUS {
3119 pub AsUlong32: u32,
3120 pub Anonymous: USB_PORT_EXT_STATUS_0,
3121 }
3122 impl ::core::marker::Copy for USB_PORT_EXT_STATUS {}
3123 impl ::core::clone::Clone for USB_PORT_EXT_STATUS {
3124 fn clone(&self) -> Self {
3125 *self
3126 }
3127 }
3128 #[repr(C, packed(1))]
3129 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3130 pub struct USB_PORT_EXT_STATUS_0 {
3131 pub _bitfield: u32,
3132 }
3133 impl ::core::marker::Copy for USB_PORT_EXT_STATUS_0 {}
3134 impl ::core::clone::Clone for USB_PORT_EXT_STATUS_0 {
3135 fn clone(&self) -> Self {
3136 *self
3137 }
3138 }
3139 #[repr(C, packed(1))]
3140 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3141 pub union USB_PORT_EXT_STATUS_AND_CHANGE {
3142 pub AsUlong64: u64,
3143 pub Anonymous: USB_PORT_EXT_STATUS_AND_CHANGE_0,
3144 }
3145 impl ::core::marker::Copy for USB_PORT_EXT_STATUS_AND_CHANGE {}
3146 impl ::core::clone::Clone for USB_PORT_EXT_STATUS_AND_CHANGE {
3147 fn clone(&self) -> Self {
3148 *self
3149 }
3150 }
3151 #[repr(C)]
3152 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3153 pub struct USB_PORT_EXT_STATUS_AND_CHANGE_0 {
3154 pub PortStatusChange: USB_PORT_STATUS_AND_CHANGE,
3155 pub PortExtStatus: USB_PORT_EXT_STATUS,
3156 }
3157 impl ::core::marker::Copy for USB_PORT_EXT_STATUS_AND_CHANGE_0 {}
3158 impl ::core::clone::Clone for USB_PORT_EXT_STATUS_AND_CHANGE_0 {
3159 fn clone(&self) -> Self {
3160 *self
3161 }
3162 }
3163 #[repr(C, packed(1))]
3164 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3165 pub union USB_PORT_STATUS {
3166 pub AsUshort16: u16,
3167 pub Usb20PortStatus: USB_20_PORT_STATUS,
3168 pub Usb30PortStatus: USB_30_PORT_STATUS,
3169 }
3170 impl ::core::marker::Copy for USB_PORT_STATUS {}
3171 impl ::core::clone::Clone for USB_PORT_STATUS {
3172 fn clone(&self) -> Self {
3173 *self
3174 }
3175 }
3176 #[repr(C, packed(1))]
3177 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3178 pub union USB_PORT_STATUS_AND_CHANGE {
3179 pub AsUlong32: u32,
3180 pub Anonymous: USB_PORT_STATUS_AND_CHANGE_0,
3181 }
3182 impl ::core::marker::Copy for USB_PORT_STATUS_AND_CHANGE {}
3183 impl ::core::clone::Clone for USB_PORT_STATUS_AND_CHANGE {
3184 fn clone(&self) -> Self {
3185 *self
3186 }
3187 }
3188 #[repr(C)]
3189 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3190 pub struct USB_PORT_STATUS_AND_CHANGE_0 {
3191 pub PortStatus: USB_PORT_STATUS,
3192 pub PortChange: USB_PORT_CHANGE,
3193 }
3194 impl ::core::marker::Copy for USB_PORT_STATUS_AND_CHANGE_0 {}
3195 impl ::core::clone::Clone for USB_PORT_STATUS_AND_CHANGE_0 {
3196 fn clone(&self) -> Self {
3197 *self
3198 }
3199 }
3200 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3201 pub const USB_PORT_STATUS_CONNECT: u32 = 1u32;
3202 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3203 pub const USB_PORT_STATUS_ENABLE: u32 = 2u32;
3204 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3205 pub const USB_PORT_STATUS_HIGH_SPEED: u32 = 1024u32;
3206 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3207 pub const USB_PORT_STATUS_LOW_SPEED: u32 = 512u32;
3208 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3209 pub const USB_PORT_STATUS_OVER_CURRENT: u32 = 8u32;
3210 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3211 pub const USB_PORT_STATUS_POWER: u32 = 256u32;
3212 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3213 pub const USB_PORT_STATUS_RESET: u32 = 16u32;
3214 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3215 pub const USB_PORT_STATUS_SUSPEND: u32 = 4u32;
3216 #[repr(C, packed(1))]
3217 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
3218 #[cfg(feature = "Win32_Foundation")]
3219 pub struct USB_POWER_INFO {
3220 pub SystemState: WDMUSB_POWER_STATE,
3221 pub HcDevicePowerState: WDMUSB_POWER_STATE,
3222 pub HcDeviceWake: WDMUSB_POWER_STATE,
3223 pub HcSystemWake: WDMUSB_POWER_STATE,
3224 pub RhDevicePowerState: WDMUSB_POWER_STATE,
3225 pub RhDeviceWake: WDMUSB_POWER_STATE,
3226 pub RhSystemWake: WDMUSB_POWER_STATE,
3227 pub LastSystemSleepState: WDMUSB_POWER_STATE,
3228 pub CanWakeup: super::super::Foundation::BOOLEAN,
3229 pub IsPowered: super::super::Foundation::BOOLEAN,
3230 }
3231 #[cfg(feature = "Win32_Foundation")]
3232 impl ::core::marker::Copy for USB_POWER_INFO {}
3233 #[cfg(feature = "Win32_Foundation")]
3234 impl ::core::clone::Clone for USB_POWER_INFO {
3235 fn clone(&self) -> Self {
3236 *self
3237 }
3238 }
3239 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3240 pub const USB_RECORD_FAILURE: u32 = 10u32;
3241 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3242 pub const USB_REGISTER_COMPOSITE_DEVICE: u32 = 0u32;
3243 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3244 pub const USB_REGISTER_FOR_TRANSPORT_BANDWIDTH_CHANGE: u32 = 2u32;
3245 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3246 pub const USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE: u32 = 282u32;
3247 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3248 pub const USB_REGISTER_FOR_TRANSPORT_LATENCY_CHANGE: u32 = 1u32;
3249 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3250 pub const USB_REQUEST_CLEAR_FEATURE: u32 = 1u32;
3251 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3252 pub const USB_REQUEST_CLEAR_TT_BUFFER: u32 = 8u32;
3253 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3254 pub const USB_REQUEST_GET_CONFIGURATION: u32 = 8u32;
3255 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3256 pub const USB_REQUEST_GET_DESCRIPTOR: u32 = 6u32;
3257 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3258 pub const USB_REQUEST_GET_FIRMWARE_STATUS: u32 = 26u32;
3259 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3260 pub const USB_REQUEST_GET_INTERFACE: u32 = 10u32;
3261 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3262 pub const USB_REQUEST_GET_PORT_ERR_COUNT: u32 = 13u32;
3263 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3264 pub const USB_REQUEST_GET_STATE: u32 = 2u32;
3265 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3266 pub const USB_REQUEST_GET_STATUS: u32 = 0u32;
3267 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3268 pub const USB_REQUEST_GET_TT_STATE: u32 = 10u32;
3269 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3270 pub const USB_REQUEST_ISOCH_DELAY: u32 = 49u32;
3271 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3272 pub const USB_REQUEST_REMOTE_WAKE_NOTIFICATION: u32 = 2u32;
3273 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3274 pub const USB_REQUEST_RESET_TT: u32 = 9u32;
3275 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3276 pub const USB_REQUEST_SET_ADDRESS: u32 = 5u32;
3277 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3278 pub const USB_REQUEST_SET_CONFIGURATION: u32 = 9u32;
3279 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3280 pub const USB_REQUEST_SET_DESCRIPTOR: u32 = 7u32;
3281 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3282 pub const USB_REQUEST_SET_FEATURE: u32 = 3u32;
3283 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3284 pub const USB_REQUEST_SET_FIRMWARE_STATUS: u32 = 27u32;
3285 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3286 pub const USB_REQUEST_SET_HUB_DEPTH: u32 = 12u32;
3287 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3288 pub const USB_REQUEST_SET_INTERFACE: u32 = 11u32;
3289 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3290 pub const USB_REQUEST_SET_SEL: u32 = 48u32;
3291 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3292 pub const USB_REQUEST_STOP_TT: u32 = 11u32;
3293 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3294 pub const USB_REQUEST_SYNC_FRAME: u32 = 12u32;
3295 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3296 pub const USB_REQ_GLOBAL_RESUME: u32 = 274u32;
3297 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3298 pub const USB_REQ_GLOBAL_SUSPEND: u32 = 273u32;
3299 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3300 pub const USB_RESERVED_DESCRIPTOR_TYPE: u32 = 6u32;
3301 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3302 pub const USB_RESET_HUB: u32 = 275u32;
3303 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3304 pub const USB_RESET_PORT: u32 = 1u32;
3305 #[repr(C, packed(1))]
3306 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3307 pub struct USB_SEND_RAW_COMMAND_PARAMETERS {
3308 pub Usb_bmRequest: u8,
3309 pub Usb_bRequest: u8,
3310 pub Usb_wVlaue: u16,
3311 pub Usb_wIndex: u16,
3312 pub Usb_wLength: u16,
3313 pub DeviceAddress: u16,
3314 pub MaximumPacketSize: u16,
3315 pub Timeout: u32,
3316 pub DataLength: u32,
3317 pub UsbdStatusCode: i32,
3318 pub Data: [u8; 4],
3319 }
3320 impl ::core::marker::Copy for USB_SEND_RAW_COMMAND_PARAMETERS {}
3321 impl ::core::clone::Clone for USB_SEND_RAW_COMMAND_PARAMETERS {
3322 fn clone(&self) -> Self {
3323 *self
3324 }
3325 }
3326 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3327 pub const USB_START_TRACKING_FOR_TIME_SYNC: u32 = 285u32;
3328 #[repr(C, packed(1))]
3329 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
3330 #[cfg(feature = "Win32_Foundation")]
3331 pub struct USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION {
3332 pub TimeTrackingHandle: super::super::Foundation::HANDLE,
3333 pub IsStartupDelayTolerable: super::super::Foundation::BOOLEAN,
3334 }
3335 #[cfg(feature = "Win32_Foundation")]
3336 impl ::core::marker::Copy for USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION {}
3337 #[cfg(feature = "Win32_Foundation")]
3338 impl ::core::clone::Clone for USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION {
3339 fn clone(&self) -> Self {
3340 *self
3341 }
3342 }
3343 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3344 pub const USB_STATUS_EXT_PORT_STATUS: u32 = 2u32;
3345 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3346 pub const USB_STATUS_PD_STATUS: u32 = 1u32;
3347 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3348 pub const USB_STATUS_PORT_STATUS: u32 = 0u32;
3349 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3350 pub const USB_STOP_TRACKING_FOR_TIME_SYNC: u32 = 287u32;
3351 #[repr(C, packed(1))]
3352 #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"]
3353 #[cfg(feature = "Win32_Foundation")]
3354 pub struct USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION {
3355 pub TimeTrackingHandle: super::super::Foundation::HANDLE,
3356 }
3357 #[cfg(feature = "Win32_Foundation")]
3358 impl ::core::marker::Copy for USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION {}
3359 #[cfg(feature = "Win32_Foundation")]
3360 impl ::core::clone::Clone for USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION {
3361 fn clone(&self) -> Self {
3362 *self
3363 }
3364 }
3365 #[repr(C, packed(1))]
3366 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3367 pub struct USB_STRING_DESCRIPTOR {
3368 pub bLength: u8,
3369 pub bDescriptorType: u8,
3370 pub bString: [u16; 1],
3371 }
3372 impl ::core::marker::Copy for USB_STRING_DESCRIPTOR {}
3373 impl ::core::clone::Clone for USB_STRING_DESCRIPTOR {
3374 fn clone(&self) -> Self {
3375 *self
3376 }
3377 }
3378 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3379 pub const USB_STRING_DESCRIPTOR_TYPE: u32 = 3u32;
3380 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3381 pub const USB_SUBMIT_URB: u32 = 0u32;
3382 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3383 pub const USB_SUPERSPEEDPLUS_ISOCHRONOUS_MAX_BYTESPERINTERVAL: u32 = 16777215u32;
3384 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3385 pub const USB_SUPERSPEEDPLUS_ISOCHRONOUS_MIN_BYTESPERINTERVAL: u32 = 49153u32;
3386 #[repr(C, packed(1))]
3387 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3388 pub struct USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR {
3389 pub bLength: u8,
3390 pub bDescriptorType: u8,
3391 pub wReserved: u16,
3392 pub dwBytesPerInterval: u32,
3393 }
3394 impl ::core::marker::Copy for USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR {}
3395 impl ::core::clone::Clone for USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR {
3396 fn clone(&self) -> Self {
3397 *self
3398 }
3399 }
3400 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3401 pub const USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR_TYPE: u32 = 49u32;
3402 #[repr(C, packed(1))]
3403 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3404 pub struct USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR {
3405 pub bLength: u8,
3406 pub bDescriptorType: u8,
3407 pub bMaxBurst: u8,
3408 pub bmAttributes: USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0,
3409 pub wBytesPerInterval: u16,
3410 }
3411 impl ::core::marker::Copy for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR {}
3412 impl ::core::clone::Clone for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR {
3413 fn clone(&self) -> Self {
3414 *self
3415 }
3416 }
3417 #[repr(C)]
3418 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3419 pub union USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0 {
3420 pub AsUchar: u8,
3421 pub Bulk: USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_0,
3422 pub Isochronous: USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_1,
3423 }
3424 impl ::core::marker::Copy for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0 {}
3425 impl ::core::clone::Clone for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0 {
3426 fn clone(&self) -> Self {
3427 *self
3428 }
3429 }
3430 #[repr(C)]
3431 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3432 pub struct USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_0 {
3433 pub _bitfield: u8,
3434 }
3435 impl ::core::marker::Copy for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_0 {}
3436 impl ::core::clone::Clone for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_0 {
3437 fn clone(&self) -> Self {
3438 *self
3439 }
3440 }
3441 #[repr(C)]
3442 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3443 pub struct USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_1 {
3444 pub _bitfield: u8,
3445 }
3446 impl ::core::marker::Copy for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_1 {}
3447 impl ::core::clone::Clone for USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_0_1 {
3448 fn clone(&self) -> Self {
3449 *self
3450 }
3451 }
3452 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3453 pub const USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_TYPE: u32 = 48u32;
3454 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3455 pub const USB_SUPERSPEED_ISOCHRONOUS_MAX_MULTIPLIER: u32 = 2u32;
3456 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3457 pub const USB_SUPPORT_D0_COMMAND: u32 = 1u32;
3458 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3459 pub const USB_SUPPORT_D1_COMMAND: u32 = 2u32;
3460 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3461 pub const USB_SUPPORT_D1_WAKEUP: u32 = 16u32;
3462 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3463 pub const USB_SUPPORT_D2_COMMAND: u32 = 4u32;
3464 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3465 pub const USB_SUPPORT_D2_WAKEUP: u32 = 32u32;
3466 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3467 pub const USB_SUPPORT_D3_COMMAND: u32 = 8u32;
3468 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3469 pub const USB_TEST_MODE_TEST_FORCE_ENABLE: u32 = 5u32;
3470 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3471 pub const USB_TEST_MODE_TEST_J: u32 = 1u32;
3472 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3473 pub const USB_TEST_MODE_TEST_K: u32 = 2u32;
3474 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3475 pub const USB_TEST_MODE_TEST_PACKET: u32 = 4u32;
3476 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3477 pub const USB_TEST_MODE_TEST_SE0_NAK: u32 = 3u32;
3478 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3479 pub const USB_TRANSPORT_CHARACTERISTICS_BANDWIDTH_AVAILABLE: u32 = 2u32;
3480 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3481 pub const USB_TRANSPORT_CHARACTERISTICS_LATENCY_AVAILABLE: u32 = 1u32;
3482 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3483 pub const USB_TRANSPORT_CHARACTERISTICS_VERSION_1: u32 = 1u32;
3484 #[repr(C, packed(1))]
3485 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3486 pub struct USB_UNICODE_NAME {
3487 pub Length: u32,
3488 pub String: [u16; 1],
3489 }
3490 impl ::core::marker::Copy for USB_UNICODE_NAME {}
3491 impl ::core::clone::Clone for USB_UNICODE_NAME {
3492 fn clone(&self) -> Self {
3493 *self
3494 }
3495 }
3496 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3497 pub const USB_UNREGISTER_COMPOSITE_DEVICE: u32 = 1u32;
3498 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3499 pub const USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE: u32 = 284u32;
3500 #[repr(C)]
3501 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3502 pub struct USB_USB2HW_VERSION_PARAMETERS {
3503 pub Usb2HwRevision: u8,
3504 }
3505 impl ::core::marker::Copy for USB_USB2HW_VERSION_PARAMETERS {}
3506 impl ::core::clone::Clone for USB_USB2HW_VERSION_PARAMETERS {
3507 fn clone(&self) -> Self {
3508 *self
3509 }
3510 }
3511 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3512 pub type USB_USER_ERROR_CODE = i32;
3513 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3514 pub const UsbUserSuccess: USB_USER_ERROR_CODE = 0i32;
3515 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3516 pub const UsbUserNotSupported: USB_USER_ERROR_CODE = 1i32;
3517 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3518 pub const UsbUserInvalidRequestCode: USB_USER_ERROR_CODE = 2i32;
3519 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3520 pub const UsbUserFeatureDisabled: USB_USER_ERROR_CODE = 3i32;
3521 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3522 pub const UsbUserInvalidHeaderParameter: USB_USER_ERROR_CODE = 4i32;
3523 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3524 pub const UsbUserInvalidParameter: USB_USER_ERROR_CODE = 5i32;
3525 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3526 pub const UsbUserMiniportError: USB_USER_ERROR_CODE = 6i32;
3527 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3528 pub const UsbUserBufferTooSmall: USB_USER_ERROR_CODE = 7i32;
3529 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3530 pub const UsbUserErrorNotMapped: USB_USER_ERROR_CODE = 8i32;
3531 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3532 pub const UsbUserDeviceNotStarted: USB_USER_ERROR_CODE = 9i32;
3533 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3534 pub const UsbUserNoDeviceConnected: USB_USER_ERROR_CODE = 10i32;
3535 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3536 pub type WDMUSB_POWER_STATE = i32;
3537 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3538 pub const WdmUsbPowerNotMapped: WDMUSB_POWER_STATE = 0i32;
3539 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3540 pub const WdmUsbPowerSystemUnspecified: WDMUSB_POWER_STATE = 100i32;
3541 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3542 pub const WdmUsbPowerSystemWorking: WDMUSB_POWER_STATE = 101i32;
3543 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3544 pub const WdmUsbPowerSystemSleeping1: WDMUSB_POWER_STATE = 102i32;
3545 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3546 pub const WdmUsbPowerSystemSleeping2: WDMUSB_POWER_STATE = 103i32;
3547 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3548 pub const WdmUsbPowerSystemSleeping3: WDMUSB_POWER_STATE = 104i32;
3549 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3550 pub const WdmUsbPowerSystemHibernate: WDMUSB_POWER_STATE = 105i32;
3551 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3552 pub const WdmUsbPowerSystemShutdown: WDMUSB_POWER_STATE = 106i32;
3553 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3554 pub const WdmUsbPowerDeviceUnspecified: WDMUSB_POWER_STATE = 200i32;
3555 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3556 pub const WdmUsbPowerDeviceD0: WDMUSB_POWER_STATE = 201i32;
3557 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3558 pub const WdmUsbPowerDeviceD1: WDMUSB_POWER_STATE = 202i32;
3559 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3560 pub const WdmUsbPowerDeviceD2: WDMUSB_POWER_STATE = 203i32;
3561 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3562 pub const WdmUsbPowerDeviceD3: WDMUSB_POWER_STATE = 204i32;
3563 #[repr(C)]
3564 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3565 pub struct WINUSB_PIPE_INFORMATION {
3566 pub PipeType: USBD_PIPE_TYPE,
3567 pub PipeId: u8,
3568 pub MaximumPacketSize: u16,
3569 pub Interval: u8,
3570 }
3571 impl ::core::marker::Copy for WINUSB_PIPE_INFORMATION {}
3572 impl ::core::clone::Clone for WINUSB_PIPE_INFORMATION {
3573 fn clone(&self) -> Self {
3574 *self
3575 }
3576 }
3577 #[repr(C)]
3578 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3579 pub struct WINUSB_PIPE_INFORMATION_EX {
3580 pub PipeType: USBD_PIPE_TYPE,
3581 pub PipeId: u8,
3582 pub MaximumPacketSize: u16,
3583 pub Interval: u8,
3584 pub MaximumBytesPerInterval: u32,
3585 }
3586 impl ::core::marker::Copy for WINUSB_PIPE_INFORMATION_EX {}
3587 impl ::core::clone::Clone for WINUSB_PIPE_INFORMATION_EX {
3588 fn clone(&self) -> Self {
3589 *self
3590 }
3591 }
3592 #[repr(C, packed(1))]
3593 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3594 pub struct WINUSB_SETUP_PACKET {
3595 pub RequestType: u8,
3596 pub Request: u8,
3597 pub Value: u16,
3598 pub Index: u16,
3599 pub Length: u16,
3600 }
3601 impl ::core::marker::Copy for WINUSB_SETUP_PACKET {}
3602 impl ::core::clone::Clone for WINUSB_SETUP_PACKET {
3603 fn clone(&self) -> Self {
3604 *self
3605 }
3606 }
3607 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3608 pub const WMI_USB_DEVICE_NODE_INFORMATION: u32 = 2u32;
3609 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3610 pub const WMI_USB_DRIVER_INFORMATION: u32 = 0u32;
3611 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3612 pub const WMI_USB_DRIVER_NOTIFICATION: u32 = 1u32;
3613 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3614 pub const WMI_USB_HUB_NODE_INFORMATION: u32 = 4u32;
3615 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3616 pub const WMI_USB_PERFORMANCE_INFORMATION: u32 = 1u32;
3617 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3618 pub const WMI_USB_POWER_DEVICE_ENABLE: u32 = 2u32;
3619 pub const WinUSB_TestGuid: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 3665898495, data2: 4803, data3: 18082, data4: [142, 43, 219, 211, 183, 131, 76, 67] };
3620 #[repr(C)]
3621 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3622 pub struct _URB_BULK_OR_INTERRUPT_TRANSFER {
3623 pub Hdr: _URB_HEADER,
3624 pub PipeHandle: *mut ::core::ffi::c_void,
3625 pub TransferFlags: u32,
3626 pub TransferBufferLength: u32,
3627 pub TransferBuffer: *mut ::core::ffi::c_void,
3628 pub TransferBufferMDL: *mut ::core::ffi::c_void,
3629 pub UrbLink: *mut URB,
3630 pub hca: _URB_HCD_AREA,
3631 }
3632 impl ::core::marker::Copy for _URB_BULK_OR_INTERRUPT_TRANSFER {}
3633 impl ::core::clone::Clone for _URB_BULK_OR_INTERRUPT_TRANSFER {
3634 fn clone(&self) -> Self {
3635 *self
3636 }
3637 }
3638 #[repr(C)]
3639 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3640 pub struct _URB_CONTROL_DESCRIPTOR_REQUEST {
3641 pub Hdr: _URB_HEADER,
3642 pub Reserved: *mut ::core::ffi::c_void,
3643 pub Reserved0: u32,
3644 pub TransferBufferLength: u32,
3645 pub TransferBuffer: *mut ::core::ffi::c_void,
3646 pub TransferBufferMDL: *mut ::core::ffi::c_void,
3647 pub UrbLink: *mut URB,
3648 pub hca: _URB_HCD_AREA,
3649 pub Reserved1: u16,
3650 pub Index: u8,
3651 pub DescriptorType: u8,
3652 pub LanguageId: u16,
3653 pub Reserved2: u16,
3654 }
3655 impl ::core::marker::Copy for _URB_CONTROL_DESCRIPTOR_REQUEST {}
3656 impl ::core::clone::Clone for _URB_CONTROL_DESCRIPTOR_REQUEST {
3657 fn clone(&self) -> Self {
3658 *self
3659 }
3660 }
3661 #[repr(C)]
3662 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3663 pub struct _URB_CONTROL_FEATURE_REQUEST {
3664 pub Hdr: _URB_HEADER,
3665 pub Reserved: *mut ::core::ffi::c_void,
3666 pub Reserved2: u32,
3667 pub Reserved3: u32,
3668 pub Reserved4: *mut ::core::ffi::c_void,
3669 pub Reserved5: *mut ::core::ffi::c_void,
3670 pub UrbLink: *mut URB,
3671 pub hca: _URB_HCD_AREA,
3672 pub Reserved0: u16,
3673 pub FeatureSelector: u16,
3674 pub Index: u16,
3675 pub Reserved1: u16,
3676 }
3677 impl ::core::marker::Copy for _URB_CONTROL_FEATURE_REQUEST {}
3678 impl ::core::clone::Clone for _URB_CONTROL_FEATURE_REQUEST {
3679 fn clone(&self) -> Self {
3680 *self
3681 }
3682 }
3683 #[repr(C)]
3684 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3685 pub struct _URB_CONTROL_GET_CONFIGURATION_REQUEST {
3686 pub Hdr: _URB_HEADER,
3687 pub Reserved: *mut ::core::ffi::c_void,
3688 pub Reserved0: u32,
3689 pub TransferBufferLength: u32,
3690 pub TransferBuffer: *mut ::core::ffi::c_void,
3691 pub TransferBufferMDL: *mut ::core::ffi::c_void,
3692 pub UrbLink: *mut URB,
3693 pub hca: _URB_HCD_AREA,
3694 pub Reserved1: [u8; 8],
3695 }
3696 impl ::core::marker::Copy for _URB_CONTROL_GET_CONFIGURATION_REQUEST {}
3697 impl ::core::clone::Clone for _URB_CONTROL_GET_CONFIGURATION_REQUEST {
3698 fn clone(&self) -> Self {
3699 *self
3700 }
3701 }
3702 #[repr(C)]
3703 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3704 pub struct _URB_CONTROL_GET_INTERFACE_REQUEST {
3705 pub Hdr: _URB_HEADER,
3706 pub Reserved: *mut ::core::ffi::c_void,
3707 pub Reserved0: u32,
3708 pub TransferBufferLength: u32,
3709 pub TransferBuffer: *mut ::core::ffi::c_void,
3710 pub TransferBufferMDL: *mut ::core::ffi::c_void,
3711 pub UrbLink: *mut URB,
3712 pub hca: _URB_HCD_AREA,
3713 pub Reserved1: [u8; 4],
3714 pub Interface: u16,
3715 pub Reserved2: u16,
3716 }
3717 impl ::core::marker::Copy for _URB_CONTROL_GET_INTERFACE_REQUEST {}
3718 impl ::core::clone::Clone for _URB_CONTROL_GET_INTERFACE_REQUEST {
3719 fn clone(&self) -> Self {
3720 *self
3721 }
3722 }
3723 #[repr(C)]
3724 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3725 pub struct _URB_CONTROL_GET_STATUS_REQUEST {
3726 pub Hdr: _URB_HEADER,
3727 pub Reserved: *mut ::core::ffi::c_void,
3728 pub Reserved0: u32,
3729 pub TransferBufferLength: u32,
3730 pub TransferBuffer: *mut ::core::ffi::c_void,
3731 pub TransferBufferMDL: *mut ::core::ffi::c_void,
3732 pub UrbLink: *mut URB,
3733 pub hca: _URB_HCD_AREA,
3734 pub Reserved1: [u8; 4],
3735 pub Index: u16,
3736 pub Reserved2: u16,
3737 }
3738 impl ::core::marker::Copy for _URB_CONTROL_GET_STATUS_REQUEST {}
3739 impl ::core::clone::Clone for _URB_CONTROL_GET_STATUS_REQUEST {
3740 fn clone(&self) -> Self {
3741 *self
3742 }
3743 }
3744 #[repr(C)]
3745 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3746 pub struct _URB_CONTROL_TRANSFER {
3747 pub Hdr: _URB_HEADER,
3748 pub PipeHandle: *mut ::core::ffi::c_void,
3749 pub TransferFlags: u32,
3750 pub TransferBufferLength: u32,
3751 pub TransferBuffer: *mut ::core::ffi::c_void,
3752 pub TransferBufferMDL: *mut ::core::ffi::c_void,
3753 pub UrbLink: *mut URB,
3754 pub hca: _URB_HCD_AREA,
3755 pub SetupPacket: [u8; 8],
3756 }
3757 impl ::core::marker::Copy for _URB_CONTROL_TRANSFER {}
3758 impl ::core::clone::Clone for _URB_CONTROL_TRANSFER {
3759 fn clone(&self) -> Self {
3760 *self
3761 }
3762 }
3763 #[repr(C)]
3764 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3765 pub struct _URB_CONTROL_TRANSFER_EX {
3766 pub Hdr: _URB_HEADER,
3767 pub PipeHandle: *mut ::core::ffi::c_void,
3768 pub TransferFlags: u32,
3769 pub TransferBufferLength: u32,
3770 pub TransferBuffer: *mut ::core::ffi::c_void,
3771 pub TransferBufferMDL: *mut ::core::ffi::c_void,
3772 pub Timeout: u32,
3773 pub hca: _URB_HCD_AREA,
3774 pub SetupPacket: [u8; 8],
3775 }
3776 impl ::core::marker::Copy for _URB_CONTROL_TRANSFER_EX {}
3777 impl ::core::clone::Clone for _URB_CONTROL_TRANSFER_EX {
3778 fn clone(&self) -> Self {
3779 *self
3780 }
3781 }
3782 #[repr(C)]
3783 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3784 pub struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST {
3785 pub Hdr: _URB_HEADER,
3786 pub Reserved: *mut ::core::ffi::c_void,
3787 pub TransferFlags: u32,
3788 pub TransferBufferLength: u32,
3789 pub TransferBuffer: *mut ::core::ffi::c_void,
3790 pub TransferBufferMDL: *mut ::core::ffi::c_void,
3791 pub UrbLink: *mut URB,
3792 pub hca: _URB_HCD_AREA,
3793 pub RequestTypeReservedBits: u8,
3794 pub Request: u8,
3795 pub Value: u16,
3796 pub Index: u16,
3797 pub Reserved1: u16,
3798 }
3799 impl ::core::marker::Copy for _URB_CONTROL_VENDOR_OR_CLASS_REQUEST {}
3800 impl ::core::clone::Clone for _URB_CONTROL_VENDOR_OR_CLASS_REQUEST {
3801 fn clone(&self) -> Self {
3802 *self
3803 }
3804 }
3805 #[repr(C)]
3806 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3807 pub struct _URB_FRAME_LENGTH_CONTROL {
3808 pub Hdr: _URB_HEADER,
3809 }
3810 impl ::core::marker::Copy for _URB_FRAME_LENGTH_CONTROL {}
3811 impl ::core::clone::Clone for _URB_FRAME_LENGTH_CONTROL {
3812 fn clone(&self) -> Self {
3813 *self
3814 }
3815 }
3816 #[repr(C)]
3817 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3818 pub struct _URB_GET_CURRENT_FRAME_NUMBER {
3819 pub Hdr: _URB_HEADER,
3820 pub FrameNumber: u32,
3821 }
3822 impl ::core::marker::Copy for _URB_GET_CURRENT_FRAME_NUMBER {}
3823 impl ::core::clone::Clone for _URB_GET_CURRENT_FRAME_NUMBER {
3824 fn clone(&self) -> Self {
3825 *self
3826 }
3827 }
3828 #[repr(C)]
3829 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3830 pub struct _URB_GET_FRAME_LENGTH {
3831 pub Hdr: _URB_HEADER,
3832 pub FrameLength: u32,
3833 pub FrameNumber: u32,
3834 }
3835 impl ::core::marker::Copy for _URB_GET_FRAME_LENGTH {}
3836 impl ::core::clone::Clone for _URB_GET_FRAME_LENGTH {
3837 fn clone(&self) -> Self {
3838 *self
3839 }
3840 }
3841 #[repr(C)]
3842 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3843 pub struct _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS {
3844 pub Hdr: _URB_HEADER,
3845 pub PipeHandle: *mut ::core::ffi::c_void,
3846 pub MaximumSendPathDelayInMilliSeconds: u32,
3847 pub MaximumCompletionPathDelayInMilliSeconds: u32,
3848 }
3849 impl ::core::marker::Copy for _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS {}
3850 impl ::core::clone::Clone for _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS {
3851 fn clone(&self) -> Self {
3852 *self
3853 }
3854 }
3855 #[repr(C)]
3856 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3857 pub struct _URB_HCD_AREA {
3858 pub Reserved8: [*mut ::core::ffi::c_void; 8],
3859 }
3860 impl ::core::marker::Copy for _URB_HCD_AREA {}
3861 impl ::core::clone::Clone for _URB_HCD_AREA {
3862 fn clone(&self) -> Self {
3863 *self
3864 }
3865 }
3866 #[repr(C)]
3867 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3868 pub struct _URB_HEADER {
3869 pub Length: u16,
3870 pub Function: u16,
3871 pub Status: i32,
3872 pub UsbdDeviceHandle: *mut ::core::ffi::c_void,
3873 pub UsbdFlags: u32,
3874 }
3875 impl ::core::marker::Copy for _URB_HEADER {}
3876 impl ::core::clone::Clone for _URB_HEADER {
3877 fn clone(&self) -> Self {
3878 *self
3879 }
3880 }
3881 #[repr(C)]
3882 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3883 pub struct _URB_ISOCH_TRANSFER {
3884 pub Hdr: _URB_HEADER,
3885 pub PipeHandle: *mut ::core::ffi::c_void,
3886 pub TransferFlags: u32,
3887 pub TransferBufferLength: u32,
3888 pub TransferBuffer: *mut ::core::ffi::c_void,
3889 pub TransferBufferMDL: *mut ::core::ffi::c_void,
3890 pub UrbLink: *mut URB,
3891 pub hca: _URB_HCD_AREA,
3892 pub StartFrame: u32,
3893 pub NumberOfPackets: u32,
3894 pub ErrorCount: u32,
3895 pub IsoPacket: [USBD_ISO_PACKET_DESCRIPTOR; 1],
3896 }
3897 impl ::core::marker::Copy for _URB_ISOCH_TRANSFER {}
3898 impl ::core::clone::Clone for _URB_ISOCH_TRANSFER {
3899 fn clone(&self) -> Self {
3900 *self
3901 }
3902 }
3903 #[repr(C)]
3904 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3905 pub struct _URB_OPEN_STATIC_STREAMS {
3906 pub Hdr: _URB_HEADER,
3907 pub PipeHandle: *mut ::core::ffi::c_void,
3908 pub NumberOfStreams: u32,
3909 pub StreamInfoVersion: u16,
3910 pub StreamInfoSize: u16,
3911 pub Streams: *mut USBD_STREAM_INFORMATION,
3912 }
3913 impl ::core::marker::Copy for _URB_OPEN_STATIC_STREAMS {}
3914 impl ::core::clone::Clone for _URB_OPEN_STATIC_STREAMS {
3915 fn clone(&self) -> Self {
3916 *self
3917 }
3918 }
3919 #[repr(C)]
3920 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3921 pub struct _URB_OS_FEATURE_DESCRIPTOR_REQUEST {
3922 pub Hdr: _URB_HEADER,
3923 pub Reserved: *mut ::core::ffi::c_void,
3924 pub Reserved0: u32,
3925 pub TransferBufferLength: u32,
3926 pub TransferBuffer: *mut ::core::ffi::c_void,
3927 pub TransferBufferMDL: *mut ::core::ffi::c_void,
3928 pub UrbLink: *mut URB,
3929 pub hca: _URB_HCD_AREA,
3930 pub _bitfield: u8,
3931 pub Reserved2: u8,
3932 pub InterfaceNumber: u8,
3933 pub MS_PageIndex: u8,
3934 pub MS_FeatureDescriptorIndex: u16,
3935 pub Reserved3: u16,
3936 }
3937 impl ::core::marker::Copy for _URB_OS_FEATURE_DESCRIPTOR_REQUEST {}
3938 impl ::core::clone::Clone for _URB_OS_FEATURE_DESCRIPTOR_REQUEST {
3939 fn clone(&self) -> Self {
3940 *self
3941 }
3942 }
3943 #[repr(C)]
3944 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3945 pub struct _URB_PIPE_REQUEST {
3946 pub Hdr: _URB_HEADER,
3947 pub PipeHandle: *mut ::core::ffi::c_void,
3948 pub Reserved: u32,
3949 }
3950 impl ::core::marker::Copy for _URB_PIPE_REQUEST {}
3951 impl ::core::clone::Clone for _URB_PIPE_REQUEST {
3952 fn clone(&self) -> Self {
3953 *self
3954 }
3955 }
3956 #[repr(C)]
3957 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3958 pub struct _URB_SELECT_CONFIGURATION {
3959 pub Hdr: _URB_HEADER,
3960 pub ConfigurationDescriptor: *mut USB_CONFIGURATION_DESCRIPTOR,
3961 pub ConfigurationHandle: *mut ::core::ffi::c_void,
3962 pub Interface: USBD_INTERFACE_INFORMATION,
3963 }
3964 impl ::core::marker::Copy for _URB_SELECT_CONFIGURATION {}
3965 impl ::core::clone::Clone for _URB_SELECT_CONFIGURATION {
3966 fn clone(&self) -> Self {
3967 *self
3968 }
3969 }
3970 #[repr(C)]
3971 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3972 pub struct _URB_SELECT_INTERFACE {
3973 pub Hdr: _URB_HEADER,
3974 pub ConfigurationHandle: *mut ::core::ffi::c_void,
3975 pub Interface: USBD_INTERFACE_INFORMATION,
3976 }
3977 impl ::core::marker::Copy for _URB_SELECT_INTERFACE {}
3978 impl ::core::clone::Clone for _URB_SELECT_INTERFACE {
3979 fn clone(&self) -> Self {
3980 *self
3981 }
3982 }
3983 #[repr(C)]
3984 #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"]
3985 pub struct _URB_SET_FRAME_LENGTH {
3986 pub Hdr: _URB_HEADER,
3987 pub FrameLengthDelta: i32,
3988 }
3989 impl ::core::marker::Copy for _URB_SET_FRAME_LENGTH {}
3990 impl ::core::clone::Clone for _URB_SET_FRAME_LENGTH {
3991 fn clone(&self) -> Self {
3992 *self
3993 }
3994 }