diff options
Diffstat (limited to 'vendor/winapi/src/shared/usbioctl.rs')
-rw-r--r-- | vendor/winapi/src/shared/usbioctl.rs | 705 |
1 files changed, 0 insertions, 705 deletions
diff --git a/vendor/winapi/src/shared/usbioctl.rs b/vendor/winapi/src/shared/usbioctl.rs deleted file mode 100644 index a7906fe..0000000 --- a/vendor/winapi/src/shared/usbioctl.rs +++ /dev/null @@ -1,705 +0,0 @@ -use shared::basetsd::ULONG64; -use shared::guiddef::GUID; -use shared::minwindef::{DWORD, UCHAR, ULONG, USHORT}; -use shared::ntdef::{BOOLEAN, HANDLE, LARGE_INTEGER, LONG, NTSTATUS, PWCHAR, WCHAR}; -use shared::usb::USBD_STATUS; -use shared::usbiodef::{ - FILE_DEVICE_USB, HCD_DIAGNOSTIC_MODE_OFF, HCD_DIAGNOSTIC_MODE_ON, HCD_DISABLE_PORT, - HCD_ENABLE_PORT, HCD_GET_DRIVERKEY_NAME, HCD_GET_ROOT_HUB_NAME, HCD_GET_STATS_1, - HCD_GET_STATS_2, USB_CYCLE_PORT, USB_DIAG_IGNORE_HUBS_OFF, USB_DIAG_IGNORE_HUBS_ON, - USB_ENABLE_PORT, USB_FAIL_GET_STATUS, USB_GET_BUSGUID_INFO, USB_GET_BUS_INFO, - USB_GET_CONTROLLER_NAME, USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION, - USB_GET_DEVICE_CHARACTERISTICS, USB_GET_DEVICE_HANDLE, USB_GET_DEVICE_HANDLE_EX, - USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC, USB_GET_HUB_CAPABILITIES, - USB_GET_HUB_CAPABILITIES_EX, USB_GET_HUB_CONFIG_INFO, USB_GET_HUB_COUNT, - USB_GET_HUB_INFORMATION_EX, USB_GET_HUB_NAME, USB_GET_NODE_CONNECTION_ATTRIBUTES, - USB_GET_NODE_CONNECTION_DRIVERKEY_NAME, USB_GET_NODE_CONNECTION_INFORMATION, - USB_GET_NODE_CONNECTION_INFORMATION_EX, USB_GET_NODE_CONNECTION_INFORMATION_EX_V2, - USB_GET_NODE_CONNECTION_NAME, USB_GET_NODE_INFORMATION, USB_GET_PARENT_HUB_INFO, - USB_GET_PORT_CONNECTOR_PROPERTIES, USB_GET_PORT_STATUS, USB_GET_ROOTHUB_PDO, - USB_GET_TOPOLOGY_ADDRESS, USB_GET_TRANSPORT_CHARACTERISTICS, USB_GET_TT_DEVICE_HANDLE, - USB_HUB_CYCLE_PORT, USB_IDLE_NOTIFICATION, USB_IDLE_NOTIFICATION_EX, - USB_NOTIFY_ON_TRANSPORT_CHARACTERISTICS_CHANGE, USB_RECORD_FAILURE, - USB_REGISTER_COMPOSITE_DEVICE, USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE, - USB_REQUEST_REMOTE_WAKE_NOTIFICATION, USB_REQ_GLOBAL_RESUME, USB_REQ_GLOBAL_SUSPEND, - USB_RESET_HUB, USB_RESET_PORT, USB_START_TRACKING_FOR_TIME_SYNC, - USB_STOP_TRACKING_FOR_TIME_SYNC, USB_SUBMIT_URB, USB_UNREGISTER_COMPOSITE_DEVICE, - USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE, -}; -use shared::usbspec::{ - USB_30_HUB_DESCRIPTOR, USB_CONFIGURATION_DESCRIPTOR, USB_DEVICE_DESCRIPTOR, USB_DEVICE_SPEED, - USB_ENDPOINT_DESCRIPTOR, USB_HUB_DESCRIPTOR, -}; -use um::winioctl::{FILE_ANY_ACCESS, FILE_DEVICE_USBEX, METHOD_BUFFERED, METHOD_NEITHER}; -pub const IOCTL_INTERNAL_USB_SUBMIT_URB: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_SUBMIT_URB, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_RESET_PORT: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_RESET_PORT, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_ROOTHUB_PDO, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const USBD_PORT_ENABLED: DWORD = 0x00000001; -pub const USBD_PORT_CONNECTED: DWORD = 0x00000002; -pub const IOCTL_INTERNAL_USB_GET_PORT_STATUS: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_PORT_STATUS, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_ENABLE_PORT: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_ENABLE_PORT, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_GET_HUB_COUNT: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_HUB_COUNT, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_CYCLE_PORT: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_CYCLE_PORT, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_GET_HUB_NAME: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_HUB_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_GET_BUS_INFO: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_BUS_INFO, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_CONTROLLER_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_GET_BUSGUID_INFO: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_BUSGUID_INFO, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_GET_PARENT_HUB_INFO: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_PARENT_HUB_INFO, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_IDLE_NOTIFICATION, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_DEVICE_HANDLE, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_NOTIFY_IDLE_READY: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_IDLE_NOTIFICATION_EX, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_REQ_GLOBAL_SUSPEND: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_REQ_GLOBAL_SUSPEND, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_REQ_GLOBAL_RESUME: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_REQ_GLOBAL_RESUME, METHOD_NEITHER, FILE_ANY_ACCESS); -STRUCT!{struct USB_START_FAILDATA { - LengthInBytes: ULONG, - NtStatus: NTSTATUS, - UsbdStatus: USBD_STATUS, - ConnectStatus: ULONG, - DriverData: [UCHAR; 4], -}} -pub type PUSB_START_FAILDATA = *mut USB_START_FAILDATA; -pub const IOCTL_INTERNAL_USB_RECORD_FAILURE: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_RECORD_FAILURE, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE_EX: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_DEVICE_HANDLE_EX, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_GET_TT_DEVICE_HANDLE: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_TT_DEVICE_HANDLE, METHOD_NEITHER, FILE_ANY_ACCESS); -STRUCT!{struct USB_TOPOLOGY_ADDRESS { - PciBusNumber: ULONG, - PciDeviceNumber: ULONG, - PciFunctionNumber: ULONG, - Reserved: ULONG, - RootHubPortNumber: USHORT, - HubPortNumber: [USHORT; 5], - Reserved2: USHORT, -}} -pub type PUSB_TOPOLOGY_ADDRESS = *mut USB_TOPOLOGY_ADDRESS; -pub const IOCTL_INTERNAL_USB_GET_TOPOLOGY_ADDRESS: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_TOPOLOGY_ADDRESS, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_GET_DEVICE_CONFIG_INFO: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_HUB_CONFIG_INFO, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE: DWORD - = CTL_CODE!(FILE_DEVICE_USBEX, USB_REGISTER_COMPOSITE_DEVICE, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_UNREGISTER_COMPOSITE_DEVICE: DWORD - = CTL_CODE!(FILE_DEVICE_USBEX, USB_UNREGISTER_COMPOSITE_DEVICE, METHOD_NEITHER, - FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_REQUEST_REMOTE_WAKE_NOTIFICATION: DWORD - = CTL_CODE!(FILE_DEVICE_USBEX, USB_REQUEST_REMOTE_WAKE_NOTIFICATION, METHOD_NEITHER, - FILE_ANY_ACCESS); -pub const IOCTL_INTERNAL_USB_FAIL_GET_STATUS_FROM_DEVICE: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_FAIL_GET_STATUS, METHOD_NEITHER, FILE_ANY_ACCESS); -pub const IOCTL_USB_HCD_GET_STATS_1: DWORD - = CTL_CODE!(FILE_DEVICE_USB, HCD_GET_STATS_1, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_HCD_GET_STATS_2: DWORD - = CTL_CODE!(FILE_DEVICE_USB, HCD_GET_STATS_2, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_HCD_DISABLE_PORT: DWORD - = CTL_CODE!(FILE_DEVICE_USB, HCD_DISABLE_PORT, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_HCD_ENABLE_PORT: DWORD - = CTL_CODE!(FILE_DEVICE_USB, HCD_ENABLE_PORT, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_DIAGNOSTIC_MODE_ON: DWORD - = CTL_CODE!(FILE_DEVICE_USB, HCD_DIAGNOSTIC_MODE_ON, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_DIAGNOSTIC_MODE_OFF: DWORD - = CTL_CODE!(FILE_DEVICE_USB, HCD_DIAGNOSTIC_MODE_OFF, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_ROOT_HUB_NAME: DWORD - = CTL_CODE!(FILE_DEVICE_USB, HCD_GET_ROOT_HUB_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_GET_HCD_DRIVERKEY_NAME: DWORD - = CTL_CODE!(FILE_DEVICE_USB, HCD_GET_DRIVERKEY_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_NODE_INFORMATION: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_NODE_INFORMATION, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_NODE_CONNECTION_INFORMATION: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_INFORMATION, METHOD_BUFFERED, - FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION, METHOD_BUFFERED, - FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_NODE_CONNECTION_NAME: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_DIAG_IGNORE_HUBS_ON: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_DIAG_IGNORE_HUBS_ON, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_DIAG_IGNORE_HUBS_OFF: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_DIAG_IGNORE_HUBS_OFF, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_DRIVERKEY_NAME, METHOD_BUFFERED, - FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_HUB_CAPABILITIES: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_HUB_CAPABILITIES, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_HUB_CYCLE_PORT: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_HUB_CYCLE_PORT, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_ATTRIBUTES, METHOD_BUFFERED, - FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_INFORMATION_EX, METHOD_BUFFERED, - FILE_ANY_ACCESS); -pub const IOCTL_USB_RESET_HUB: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_RESET_HUB, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_HUB_CAPABILITIES_EX: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_HUB_CAPABILITIES_EX, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_HUB_INFORMATION_EX: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_HUB_INFORMATION_EX, METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_PORT_CONNECTOR_PROPERTIES, METHOD_BUFFERED, - FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_INFORMATION_EX_V2, METHOD_BUFFERED, - FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_TRANSPORT_CHARACTERISTICS: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_TRANSPORT_CHARACTERISTICS, METHOD_BUFFERED, - FILE_ANY_ACCESS); -pub const IOCTL_USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE, - METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_NOTIFY_ON_TRANSPORT_CHARACTERISTICS_CHANGE: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_NOTIFY_ON_TRANSPORT_CHARACTERISTICS_CHANGE, METHOD_BUFFERED, - FILE_ANY_ACCESS); -pub const IOCTL_USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE, - METHOD_BUFFERED, FILE_ANY_ACCESS); -pub const IOCTL_USB_START_TRACKING_FOR_TIME_SYNC: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_START_TRACKING_FOR_TIME_SYNC, METHOD_BUFFERED, - FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC, METHOD_BUFFERED, - FILE_ANY_ACCESS); -pub const IOCTL_USB_STOP_TRACKING_FOR_TIME_SYNC: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_STOP_TRACKING_FOR_TIME_SYNC, METHOD_BUFFERED, - FILE_ANY_ACCESS); -pub const IOCTL_USB_GET_DEVICE_CHARACTERISTICS: DWORD - = CTL_CODE!(FILE_DEVICE_USB, USB_GET_DEVICE_CHARACTERISTICS, METHOD_BUFFERED, FILE_ANY_ACCESS); -ENUM!{enum USB_HUB_NODE { - UsbHub, - UsbMIParent, -}} -STRUCT!{#[repr(packed)] struct USB_HUB_INFORMATION { - HubDescriptor: USB_HUB_DESCRIPTOR, - HubIsBusPowered: BOOLEAN, -}} -pub type PUSB_HUB_INFORMATION = *mut USB_HUB_INFORMATION; -STRUCT!{#[repr(packed)] struct USB_MI_PARENT_INFORMATION { - NumberOfInterfaces: ULONG, -}} -pub type PUSB_MI_PARENT_INFORMATION = *mut USB_MI_PARENT_INFORMATION; -STRUCT!{#[repr(packed)] struct USB_NODE_INFORMATION { - NodeType: USB_HUB_NODE, - u: USB_NODE_INFORMATION_u, -}} -UNION!{union USB_NODE_INFORMATION_u { - [u8; 72], - HubInformation HubInformation_mut: USB_HUB_INFORMATION, - MiParentInformation MiParentInformation_mut: USB_MI_PARENT_INFORMATION, -}} -pub type PUSB_NODE_INFORMATION = *mut USB_NODE_INFORMATION; -STRUCT!{#[repr(packed)] struct USB_PIPE_INFO { - EndpointDescriptor: USB_ENDPOINT_DESCRIPTOR, - ScheduleOffset: ULONG, -}} -pub type PUSB_PIPE_INFO = *mut USB_PIPE_INFO; -ENUM!{enum USB_CONNECTION_STATUS { - NoDeviceConnected, - DeviceConnected, - DeviceFailedEnumeration, - DeviceGeneralFailure, - DeviceCausedOvercurrent, - DeviceNotEnoughPower, - DeviceNotEnoughBandwidth, - DeviceHubNestedTooDeeply, - DeviceInLegacyHub, - DeviceEnumerating, - DeviceReset, -}} -pub type PUSB_CONNECTION_STATUS = *mut USB_CONNECTION_STATUS; -STRUCT!{#[repr(packed)] struct USB_NODE_CONNECTION_INFORMATION { - ConnectionIndex: ULONG, - DeviceDescriptor: USB_DEVICE_DESCRIPTOR, - CurrentConfigurationValue: UCHAR, - LowSpeed: BOOLEAN, - DeviceIsHub: BOOLEAN, - DeviceAddress: USHORT, - NumberOfOpenPipes: ULONG, - ConnectionStatus: USB_CONNECTION_STATUS, - PipeList: [USB_PIPE_INFO; 0], -}} -pub type PUSB_NODE_CONNECTION_INFORMATION = *mut USB_NODE_CONNECTION_INFORMATION; -STRUCT!{#[repr(packed)] struct USB_NODE_CONNECTION_DRIVERKEY_NAME { - ConnectionIndex: ULONG, - ActualLength: ULONG, - DriverKeyName: [WCHAR; 1], -}} -pub type PUSB_NODE_CONNECTION_DRIVERKEY_NAME = *mut USB_NODE_CONNECTION_DRIVERKEY_NAME; -STRUCT!{#[repr(packed)] struct USB_NODE_CONNECTION_NAME { - ConnectionIndex: ULONG, - ActualLength: ULONG, - NodeName: [WCHAR; 1], -}} -pub type PUSB_NODE_CONNECTION_NAME = *mut USB_NODE_CONNECTION_NAME; -STRUCT!{#[repr(packed)] struct USB_HUB_NAME { - ActualLength: ULONG, - HubName: [WCHAR; 1], -}} -pub type PUSB_HUB_NAME = *mut USB_HUB_NAME; -STRUCT!{#[repr(packed)] struct USB_ROOT_HUB_NAME { - ActualLength: ULONG, - RootHubName: [WCHAR; 1], -}} -pub type PUSB_ROOT_HUB_NAME = *mut USB_ROOT_HUB_NAME; -STRUCT!{#[repr(packed)] struct USB_HCD_DRIVERKEY_NAME { - ActualLength: ULONG, - DriverKeyName: [WCHAR; 1], -}} -pub type PUSB_HCD_DRIVERKEY_NAME = *mut USB_HCD_DRIVERKEY_NAME; -STRUCT!{#[repr(packed)] struct USB_DESCRIPTOR_REQUEST { - ConnectionIndex: ULONG, - SetupPacket: USB_DESCRIPTOR_REQUEST_SetupPacket, - Data: [UCHAR; 0], -}} -STRUCT!{#[repr(packed)] struct USB_DESCRIPTOR_REQUEST_SetupPacket { - bmRequest: UCHAR, - bRequest: UCHAR, - wValue: USHORT, - wIndex: USHORT, - wLength: USHORT, -}} -pub type PUSB_DESCRIPTOR_REQUEST = *mut USB_DESCRIPTOR_REQUEST; -STRUCT!{#[repr(packed)] struct USB_HUB_CAPABILITIES { - bitfield: ULONG, -}} -BITFIELD!{USB_HUB_CAPABILITIES bitfield: ULONG [ - HubIs2xCapable set_HubIs2xCapable[0..1], -]} -pub type PUSB_HUB_CAPABILITIES = *mut USB_HUB_CAPABILITIES; -STRUCT!{#[repr(packed)] struct USB_NODE_CONNECTION_ATTRIBUTES { - ConnectionIndex: ULONG, - ConnectionStatus: USB_CONNECTION_STATUS, - PortAttributes: ULONG, -}} -pub type PUSB_NODE_CONNECTION_ATTRIBUTES = *mut USB_NODE_CONNECTION_ATTRIBUTES; -STRUCT!{#[repr(packed)] struct USB_NODE_CONNECTION_INFORMATION_EX { - ConnectionIndex: ULONG, - DeviceDescriptor: USB_DEVICE_DESCRIPTOR, - CurrentConfigurationValue: UCHAR, - Speed: UCHAR, - DeviceIsHub: BOOLEAN, - DeviceAddress: USHORT, - NumberOfOpenPipes: ULONG, - ConnectionStatus: USB_CONNECTION_STATUS, - PipeList: [USB_PIPE_INFO; 0], -}} -pub type PUSB_NODE_CONNECTION_INFORMATION_EX = *mut USB_NODE_CONNECTION_INFORMATION_EX; -STRUCT!{#[repr(packed)] struct USB_HUB_CAP_FLAGS { - ul: ULONG, -}} -BITFIELD!{USB_HUB_CAP_FLAGS ul: ULONG [ - HubIsHighSpeedCapable set_HubIsHighSpeedCapable[0..1], - HubIsHighSpeed set_HubIsHighSpeed[1..2], - HubIsMultiTtCapable set_HubIsMultiTtCapable[2..3], - HubIsMultiTt set_HubIsMultiTt[3..4], - HubIsRoot set_HubIsRoot[4..5], - HubIsArmedWakeOnConnect set_HubIsArmedWakeOnConnect[5..6], - HubIsBusPowered set_HubIsBusPowered[6..7], - ReservedMBZ set_ReservedMBZ[7..32], -]} -pub type PUSB_HUB_CAP_FLAGS = *mut USB_HUB_CAP_FLAGS; -STRUCT!{#[repr(packed)] struct USB_HUB_CAPABILITIES_EX { - CapabilityFlags: USB_HUB_CAP_FLAGS, -}} -pub type PUSB_HUB_CAPABILITIES_EX = *mut USB_HUB_CAPABILITIES_EX; -STRUCT!{#[repr(packed)] struct USB_CYCLE_PORT_PARAMS { - ConnectionIndex: ULONG, - StatusReturned: ULONG, -}} -pub type PUSB_CYCLE_PORT_PARAMS = *mut USB_CYCLE_PORT_PARAMS; -STRUCT!{#[repr(packed)] struct USB_ID_STRING { - LanguageId: USHORT, - Pad: USHORT, - LengthInBytes: ULONG, - Buffer: PWCHAR, -}} -pub type PUSB_ID_STRING = *mut USB_ID_STRING; -STRUCT!{#[repr(packed)] struct USB_HUB_DEVICE_UXD_SETTINGS { - Version: ULONG, - PnpGuid: GUID, - OwnerGuid: GUID, - DeleteOnShutdown: ULONG, - DeleteOnReload: ULONG, - DeleteOnDisconnect: ULONG, - Reserved: [ULONG; 5], -}} -pub type PUSB_HUB_DEVICE_UXD_SETTINGS = *mut USB_HUB_DEVICE_UXD_SETTINGS; -STRUCT!{#[repr(packed)] struct HUB_DEVICE_CONFIG_INFO { - Version: ULONG, - Length: ULONG, - HubFlags: USB_HUB_CAP_FLAGS, - HardwareIds: USB_ID_STRING, - CompatibleIds: USB_ID_STRING, - DeviceDescription: USB_ID_STRING, - Reserved: [ULONG; 19], - UxdSettings: USB_HUB_DEVICE_UXD_SETTINGS, -}} -pub type PHUB_DEVICE_CONFIG_INFO = *mut HUB_DEVICE_CONFIG_INFO; -STRUCT!{#[repr(packed)] struct HCD_STAT_COUNTERS { - BytesTransferred: ULONG, - IsoMissedCount: USHORT, - DataOverrunErrorCount: USHORT, - CrcErrorCount: USHORT, - ScheduleOverrunCount: USHORT, - TimeoutErrorCount: USHORT, - InternalHcErrorCount: USHORT, - BufferOverrunErrorCount: USHORT, - SWErrorCount: USHORT, - StallPidCount: USHORT, - PortDisableCount: USHORT, -}} -pub type PHCD_STAT_COUNTERS = *mut HCD_STAT_COUNTERS; -STRUCT!{#[repr(packed)] struct HCD_ISO_STAT_COUNTERS { - LateUrbs: USHORT, - DoubleBufferedPackets: USHORT, - TransfersCF_5ms: USHORT, - TransfersCF_2ms: USHORT, - TransfersCF_1ms: USHORT, - MaxInterruptLatency: USHORT, - BadStartFrame: USHORT, - StaleUrbs: USHORT, - IsoPacketNotAccesed: USHORT, - IsoPacketHWError: USHORT, - SmallestUrbPacketCount: USHORT, - LargestUrbPacketCount: USHORT, - IsoCRC_Error: USHORT, - IsoOVERRUN_Error: USHORT, - IsoINTERNAL_Error: USHORT, - IsoUNKNOWN_Error: USHORT, - IsoBytesTransferred: ULONG, - LateMissedCount: USHORT, - HWIsoMissedCount: USHORT, - Reserved7: [ULONG; 8], -}} -pub type PHCD_ISO_STAT_COUNTERS = *mut HCD_ISO_STAT_COUNTERS; -STRUCT!{#[repr(packed)] struct HCD_STAT_INFORMATION_1 { - Reserved1: ULONG, - Reserved2: ULONG, - ResetCounters: ULONG, - TimeRead: LARGE_INTEGER, - Counters: HCD_STAT_COUNTERS, -}} -pub type PHCD_STAT_INFORMATION_1 = *mut HCD_STAT_INFORMATION_1; -STRUCT!{#[repr(packed)] struct HCD_STAT_INFORMATION_2 { - Reserved1: ULONG, - Reserved2: ULONG, - ResetCounters: ULONG, - TimeRead: LARGE_INTEGER, - LockedMemoryUsed: LONG, - Counters: HCD_STAT_COUNTERS, - IsoCounters: HCD_ISO_STAT_COUNTERS, -}} -pub type PHCD_STAT_INFORMATION_2 = *mut HCD_STAT_INFORMATION_2; -pub const WMI_USB_DRIVER_INFORMATION: ULONG = 0; -pub const WMI_USB_DRIVER_NOTIFICATION: ULONG = 1; -pub const WMI_USB_POWER_DEVICE_ENABLE: ULONG = 2; -pub const WMI_USB_HUB_NODE_INFORMATION: ULONG = 4; -pub const WMI_USB_PERFORMANCE_INFORMATION: ULONG = 1; -pub const WMI_USB_DEVICE_NODE_INFORMATION: ULONG = 2; -ENUM!{enum USB_NOTIFICATION_TYPE { - EnumerationFailure = 0, - InsufficentBandwidth, - InsufficentPower, - OverCurrent, - ResetOvercurrent, - AcquireBusInfo, - AcquireHubName, - AcquireControllerName, - HubOvercurrent, - HubPowerChange, - HubNestedTooDeeply, - ModernDeviceInLegacyHub, -}} -STRUCT!{#[repr(packed)] struct USB_NOTIFICATION { - NotificationType: USB_NOTIFICATION_TYPE, -}} -pub type PUSB_NOTIFICATION = *mut USB_NOTIFICATION; -STRUCT!{#[repr(packed)] struct USB_CONNECTION_NOTIFICATION { - NotificationType: USB_NOTIFICATION_TYPE, - ConnectionNumber: ULONG, - RequestedBandwidth: ULONG, - EnumerationFailReason: ULONG, - PowerRequested: ULONG, - HubNameLength: ULONG, -}} -pub type PUSB_CONNECTION_NOTIFICATION = *mut USB_CONNECTION_NOTIFICATION; -STRUCT!{#[repr(packed)] struct USB_BUS_NOTIFICATION { - NotificationType: USB_NOTIFICATION_TYPE, - TotalBandwidth: ULONG, - ConsumedBandwidth: ULONG, - ControllerNameLength: ULONG, -}} -pub type PUSB_BUS_NOTIFICATION = *mut USB_BUS_NOTIFICATION; -STRUCT!{#[repr(packed)] struct USB_ACQUIRE_INFO { - NotificationType: USB_NOTIFICATION_TYPE, - TotalSize: ULONG, - Buffer: [WCHAR; 1], -}} -pub type PUSB_ACQUIRE_INFO = *mut USB_ACQUIRE_INFO; -ENUM!{enum USB_WMI_DEVICE_NODE_TYPE { - UsbDevice, - HubDevice, - CompositeDevice, - UsbController, -}} -pub type PUSB_WMI_DEVICE_NODE_TYPE = *mut USB_WMI_DEVICE_NODE_TYPE; -STRUCT!{#[repr(packed)] struct USB_DEVICE_STATE { - bitfield: ULONG, -}} -BITFIELD!{USB_DEVICE_STATE bitfield: ULONG [ - DeviceConnected set_DeviceConnected[0..1], - DeviceStarted set_DeviceStarted[1..2], -]} -pub type PUSB_DEVICE_STATE = *mut USB_DEVICE_STATE; -STRUCT!{#[repr(packed)] struct USB_HUB_PORT_INFORMATION { - DeviceState: USB_DEVICE_STATE, - PortNumber: USHORT, - DeviceAddress: USHORT, - ConnectionIndex: ULONG, - ConnectionStatus: USB_CONNECTION_STATUS, -}} -pub type PUSB_HUB_PORT_INFORMATION = *mut USB_HUB_PORT_INFORMATION; -STRUCT!{#[repr(packed)] struct USB_HUB_DEVICE_INFO { - HubDescriptor: USB_HUB_DESCRIPTOR, - HubNumber: ULONG, - DeviceAddress: USHORT, - HubIsSelfPowered: BOOLEAN, - HubIsRootHub: BOOLEAN, - HubCapabilities: USB_HUB_CAPABILITIES, - NumberOfHubPorts: ULONG, - PortInfo: [USB_HUB_PORT_INFORMATION; 1], -}} -pub type PUSB_HUB_DEVICE_INFO = *mut USB_HUB_DEVICE_INFO; -STRUCT!{#[repr(packed)] struct USB_COMPOSITE_FUNCTION_INFO { - FunctionNumber: UCHAR, - BaseInterfaceNumber: UCHAR, - NumberOfInterfaces: UCHAR, - FunctionIsIdle: BOOLEAN, -}} -pub type PUSB_COMPOSITE_FUNCTION_INFO = *mut USB_COMPOSITE_FUNCTION_INFO; -STRUCT!{#[repr(packed)] struct USB_COMPOSITE_DEVICE_INFO { - DeviceDescriptor: USB_DEVICE_DESCRIPTOR, - CurrentConfigDescriptor: USB_CONFIGURATION_DESCRIPTOR, - CurrentConfigurationValue: UCHAR, - NumberOfFunctions: UCHAR, - FunctionInfo: [USB_COMPOSITE_FUNCTION_INFO; 1], -}} -pub type PUSB_COMPOSITE_DEVICE_INFO = *mut USB_COMPOSITE_DEVICE_INFO; -STRUCT!{#[repr(packed)] struct USB_CONTROLLER_DEVICE_INFO { - PciVendorId: ULONG, - PciDeviceId: ULONG, - PciRevision: ULONG, - NumberOfRootPorts: ULONG, - HcFeatureFlags: ULONG, -}} -pub type PUSB_CONTROLLER_DEVICE_INFO = *mut USB_CONTROLLER_DEVICE_INFO; -STRUCT!{#[repr(packed)] struct USB_DEVICE_INFO { - DeviceState: USB_DEVICE_STATE, - PortNumber: USHORT, - DeviceDescriptor: USB_DEVICE_DESCRIPTOR, - CurrentConfigurationValue: UCHAR, - Speed: USB_DEVICE_SPEED, - DeviceAddress: USHORT, - ConnectionIndex: ULONG, - ConnectionStatus: USB_CONNECTION_STATUS, - PnpHardwareId: [WCHAR; 128], - PnpCompatibleId: [WCHAR; 128], - SerialNumberId: [WCHAR; 128], - PnpDeviceDescription: [WCHAR; 128], - NumberOfOpenPipes: ULONG, - PipeList: [USB_PIPE_INFO; 1], -}} -pub type PUSB_DEVICE_INFO = *mut USB_DEVICE_INFO; -STRUCT!{#[repr(packed)] struct USB_DEVICE_NODE_INFO { - Sig: ULONG, - LengthInBytes: ULONG, - DeviceDescription: [WCHAR; 40], - NodeType: USB_WMI_DEVICE_NODE_TYPE, - BusAddress: USB_TOPOLOGY_ADDRESS, - u: USB_DEVICE_NODE_INFO_u, -}} -UNION!{union USB_DEVICE_NODE_INFO_u { - [u8; 1078], - UsbDeviceInfo UsbDeviceInfo_mut: USB_DEVICE_INFO, - HubDeviceInfo HubDeviceInfo_mut: USB_HUB_DEVICE_INFO, - CompositeDeviceInfo CompositeDeviceInfo_mut: USB_COMPOSITE_DEVICE_INFO, - ControllerDeviceInfo ControllerDeviceInfo_mut: USB_CONTROLLER_DEVICE_INFO, - DeviceInformation DeviceInformation_mut: [UCHAR; 4], -}} -pub type PUSB_DEVICE_NODE_INFO = *mut USB_DEVICE_NODE_INFO; -STRUCT!{#[repr(packed)] struct USB_DEVICE_PERFORMANCE_INFO { - BulkBytes: ULONG, - ControlDataBytes: ULONG, - IsoBytes: ULONG, - InterruptBytes: ULONG, - BulkUrbCount: ULONG, - ControlUrbCount: ULONG, - IsoUrbCount: ULONG, - InterruptUrbCount: ULONG, - AllocedInterrupt: [ULONG; 6], - AllocedIso: ULONG, - Total32secBandwidth: ULONG, - TotalTtBandwidth: ULONG, - DeviceDescription: [WCHAR; 60], - DeviceSpeed: USB_DEVICE_SPEED, - TotalIsoLatency: ULONG, - DroppedIsoPackets: ULONG, - TransferErrors: ULONG, - PciInterruptCount: ULONG, - HcIdleState: ULONG, - HcAsyncIdleState: ULONG, - HcAsyncCacheFlushCount: ULONG, - HcPeriodicIdleState: ULONG, - HcPeriodicCacheFlushCount: ULONG, -}} -pub type PUSB_DEVICE_PERFORMANCE_INFO = *mut USB_DEVICE_PERFORMANCE_INFO; -ENUM!{enum USB_HUB_TYPE { - UsbRootHub = 1, - Usb20Hub = 2, - Usb30Hub = 3, -}} -STRUCT!{#[repr(packed)] struct USB_HUB_INFORMATION_EX { - HubType: USB_HUB_TYPE, - HighestPortNumber: USHORT, - u: USB_HUB_INFORMATION_EX_u, -}} -UNION!{union USB_HUB_INFORMATION_EX_u { - [u8; 71], - UsbHubDescriptor UsbHubDescriptor_mut: USB_HUB_DESCRIPTOR, - Usb30HubDescriptor Usb30HubDescriptor_mut: USB_30_HUB_DESCRIPTOR, -}} -pub type PUSB_HUB_INFORMATION_EX = *mut USB_HUB_INFORMATION_EX; -STRUCT!{#[repr(packed)] struct USB_PORT_PROPERTIES { - ul: ULONG, -}} -BITFIELD!{USB_PORT_PROPERTIES ul: ULONG [ - PortIsUserConnectable set_PortIsUserConnectable[0..1], - PortIsDebugCapable set_PortIsDebugCapable[1..2], - PortHasMultipleCompanions set_PortHasMultipleCompanions[2..3], - PortConnectorIsTypeC set_PortConnectorIsTypeC[3..4], - ReservedMBZ set_ReservedMBZ[4..32], -]} -pub type PUSB_PORT_PROPERTIES = *mut USB_PORT_PROPERTIES; -STRUCT!{#[repr(packed)] struct USB_PORT_CONNECTOR_PROPERTIES { - ConnectionIndex: ULONG, - ActualLength: ULONG, - UsbPortProperties: USB_PORT_PROPERTIES, - CompanionIndex: USHORT, - CompanionPortNumber: USHORT, - CompanionHubSymbolicLinkName: [WCHAR; 1], -}} -pub type PUSB_PORT_CONNECTOR_PROPERTIES = *mut USB_PORT_CONNECTOR_PROPERTIES; -STRUCT!{#[repr(packed)] struct USB_PROTOCOLS { - ul: ULONG, -}} -BITFIELD!{USB_PROTOCOLS ul: ULONG [ - Usb110 set_Usb110[0..1], - Usb200 set_Usb200[1..2], - Usb300 set_Usb300[2..3], - ReservedMBZ set_ReservedMBZ[3..32], -]} -pub type PUSB_PROTOCOLS = *mut USB_PROTOCOLS; -STRUCT!{#[repr(packed)] struct USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS { - ul: ULONG, -}} -BITFIELD!{USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS ul: ULONG [ - DeviceIsOperatingAtSuperSpeedOrHigher set_DeviceIsOperatingAtSuperSpeedOrHigher[0..1], - DeviceIsSuperSpeedCapableOrHigher set_DeviceIsSuperSpeedCapableOrHigher[1..2], - DeviceIsOperatingAtSuperSpeedPlusOrHigher set_DeviceIsOperatingAtSuperSpeedPlusOrHigher[2..3], - DeviceIsSuperSpeedPlusCapableOrHigher set_DeviceIsSuperSpeedPlusCapableOrHigher[3..4], - ReservedMBZ set_ReservedMBZ[4..32], -]} -pub type PUSB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS - = *mut USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS; -STRUCT!{#[repr(packed)] struct USB_NODE_CONNECTION_INFORMATION_EX_V2 { - ConnectionIndex: ULONG, - Length: ULONG, - SupportedUsbProtocols: USB_PROTOCOLS, - Flags: USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS, -}} -pub type PUSB_NODE_CONNECTION_INFORMATION_EX_V2 = *mut USB_NODE_CONNECTION_INFORMATION_EX_V2; -pub const USB_TRANSPORT_CHARACTERISTICS_VERSION_1: ULONG = 0x01; -pub const USB_TRANSPORT_CHARACTERISTICS_LATENCY_AVAILABLE: ULONG = 0x1; -pub const USB_TRANSPORT_CHARACTERISTICS_BANDWIDTH_AVAILABLE: ULONG = 0x2; -STRUCT!{#[repr(packed)] struct USB_TRANSPORT_CHARACTERISTICS { - Version: ULONG, - TransportCharacteristicsFlags: ULONG, - CurrentRoundtripLatencyInMilliSeconds: ULONG64, - MaxPotentialBandwidth: ULONG64, -}} -pub type PUSB_TRANSPORT_CHARACTERISTICS = *mut USB_TRANSPORT_CHARACTERISTICS; -pub const USB_REGISTER_FOR_TRANSPORT_LATENCY_CHANGE: ULONG = 0x1; -pub const USB_REGISTER_FOR_TRANSPORT_BANDWIDTH_CHANGE: ULONG = 0x2; -DECLARE_HANDLE!(USB_CHANGE_REGISTRATION_HANDLE, USB_CHANGE_REGISTRATION_HANDLE__); -STRUCT!{#[repr(packed)] struct USB_TRANSPORT_CHARACTERISTICS_CHANGE_REGISTRATION { - ChangeNotificationInputFlags: ULONG, - Handle: USB_CHANGE_REGISTRATION_HANDLE, - UsbTransportCharacteristics: USB_TRANSPORT_CHARACTERISTICS, -}} -pub type PUSB_TRANSPORT_CHARACTERISTICS_CHANGE_REGISTRATION - = *mut USB_TRANSPORT_CHARACTERISTICS_CHANGE_REGISTRATION; -STRUCT!{#[repr(packed)] struct USB_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION { - Handle: USB_CHANGE_REGISTRATION_HANDLE, - UsbTransportCharacteristics: USB_TRANSPORT_CHARACTERISTICS, -}} -pub type PUSB_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION - = *mut USB_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION; -STRUCT!{#[repr(packed)] struct USB_TRANSPORT_CHARACTERISTICS_CHANGE_UNREGISTRATION { - Handle: USB_CHANGE_REGISTRATION_HANDLE, -}} -pub type PUSB_TRANSPORT_CHARACTERISTICS_CHANGE_UNREGISTRATION - = *mut USB_TRANSPORT_CHARACTERISTICS_CHANGE_UNREGISTRATION; -pub const USB_DEVICE_CHARACTERISTICS_VERSION_1: ULONG = 0x01; -pub const USB_DEVICE_CHARACTERISTICS_MAXIMUM_PATH_DELAYS_AVAILABLE: ULONG = 0x1; -STRUCT!{#[repr(packed)] struct USB_DEVICE_CHARACTERISTICS { - Version: ULONG, - Reserved: [ULONG; 2], - UsbDeviceCharacteristicsFlags: ULONG, - MaximumSendPathDelayInMilliSeconds: ULONG, - MaximumCompletionPathDelayInMilliSeconds: ULONG, -}} -pub type PUSB_DEVICE_CHARACTERISTICS = *mut USB_DEVICE_CHARACTERISTICS; -STRUCT!{#[repr(packed)] struct USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION { - TimeTrackingHandle: HANDLE, - IsStartupDelayTolerable: BOOLEAN, -}} -pub type PUSB_START_TRACKING_FOR_TIME_SYNC_INFORMATION - = *mut USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION; -STRUCT!{#[repr(packed)] struct USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION { - TimeTrackingHandle: HANDLE, -}} -pub type PUSB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION - = *mut USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION; -STRUCT!{#[repr(packed)] struct USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION { - TimeTrackingHandle: HANDLE, - InputFrameNumber: ULONG, - InputMicroFrameNumber: ULONG, - QueryPerformanceCounterAtInputFrameOrMicroFrame: LARGE_INTEGER, - QueryPerformanceCounterFrequency: LARGE_INTEGER, - PredictedAccuracyInMicroSeconds: ULONG, - CurrentGenerationID: ULONG, - CurrentQueryPerformanceCounter: LARGE_INTEGER, - CurrentHardwareFrameNumber: ULONG, - CurrentHardwareMicroFrameNumber: ULONG, - CurrentUSBFrameNumber: ULONG, -}} -pub type PUSB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION - = *mut USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION; |