26 #define USB_HUB_TAG 'BUHU' 28 #define USBH_EXTENSION_TYPE_HUB 0x01 29 #define USBH_EXTENSION_TYPE_PORT 0x02 30 #define USBH_EXTENSION_TYPE_PARENT 0x04 31 #define USBH_EXTENSION_TYPE_FUNCTION 0x08 33 #define USBHUB_FDO_FLAG_DEVICE_STARTED (1 << 0) 34 #define USBHUB_FDO_FLAG_DEVICE_STOPPING (1 << 2) 35 #define USBHUB_FDO_FLAG_DEVICE_FAILED (1 << 3) 36 #define USBHUB_FDO_FLAG_REMOTE_WAKEUP (1 << 4) 37 #define USBHUB_FDO_FLAG_DEVICE_STOPPED (1 << 5) 38 #define USBHUB_FDO_FLAG_HUB_BUSY (1 << 6) 39 #define USBHUB_FDO_FLAG_PENDING_WAKE_IRP (1 << 7) 40 #define USBHUB_FDO_FLAG_RESET_PORT_LOCK (1 << 8) 41 #define USBHUB_FDO_FLAG_ESD_RECOVERING (1 << 9) 42 #define USBHUB_FDO_FLAG_SET_D0_STATE (1 << 10) 43 #define USBHUB_FDO_FLAG_NOT_D0_STATE (1 << 11) 44 #define USBHUB_FDO_FLAG_WAIT_IDLE_REQUEST (1 << 12) 45 #define USBHUB_FDO_FLAG_STATE_CHANGING (1 << 13) 46 #define USBHUB_FDO_FLAG_DEVICE_REMOVED (1 << 14) 47 #define USBHUB_FDO_FLAG_USB20_HUB (1 << 15) 48 #define USBHUB_FDO_FLAG_DEFER_CHECK_IDLE (1 << 16) 49 #define USBHUB_FDO_FLAG_WAKEUP_START (1 << 17) 50 #define USBHUB_FDO_FLAG_MULTIPLE_TTS (1 << 18) // High-speed Operating Hub with Multiple TTs 51 #define USBHUB_FDO_FLAG_ENUM_POST_RECOVER (1 << 19) 52 #define USBHUB_FDO_FLAG_DO_ENUMERATION (1 << 20) 53 #define USBHUB_FDO_FLAG_CHECK_IDLE_LOCK (1 << 21) 54 #define USBHUB_FDO_FLAG_HIBERNATE_STATE (1 << 22) 55 #define USBHUB_FDO_FLAG_NOT_ENUMERATED (1 << 23) 56 #define USBHUB_FDO_FLAG_DO_SUSPENSE (1 << 24) 57 #define USBHUB_FDO_FLAG_GOING_IDLE (1 << 25) 58 #define USBHUB_FDO_FLAG_DEVICE_SUSPENDED (1 << 26) 59 #define USBHUB_FDO_FLAG_WITEM_INIT (1 << 27) 61 #define USBHUB_PDO_FLAG_HUB_DEVICE (1 << 0) 62 #define USBHUB_PDO_FLAG_MULTI_INTERFACE (1 << 1) 63 #define USBHUB_PDO_FLAG_INIT_PORT_FAILED (1 << 2) 64 #define USBHUB_PDO_FLAG_PORT_LOW_SPEED (1 << 3) 65 #define USBHUB_PDO_FLAG_REMOTE_WAKEUP (1 << 4) 66 #define USBHUB_PDO_FLAG_WAIT_WAKE (1 << 5) 67 #define USBHUB_PDO_FLAG_NOT_CONNECTED (1 << 6) 68 #define USBHUB_PDO_FLAG_DELETE_PENDING (1 << 7) 69 #define USBHUB_PDO_FLAG_POWER_D3 (1 << 8) 70 #define USBHUB_PDO_FLAG_DEVICE_STARTED (1 << 9) 71 #define USBHUB_PDO_FLAG_HS_USB1_DUALMODE (1 << 10) 72 #define USBHUB_PDO_FLAG_REG_DEV_INTERFACE (1 << 11) // SymbolicLink 73 #define USBHUB_PDO_FLAG_PORT_RESTORE_FAIL (1 << 12) 74 #define USBHUB_PDO_FLAG_POWER_D1_OR_D2 (1 << 13) 75 #define USBHUB_PDO_FLAG_OVERCURRENT_PORT (1 << 14) 76 #define USBHUB_PDO_FLAG_REMOVING_PORT_PDO (1 << 15) 77 #define USBHUB_PDO_FLAG_INSUFFICIENT_PWR (1 << 16) 78 #define USBHUB_PDO_FLAG_ALLOC_BNDW_FAILED (1 << 18) 79 #define USBHUB_PDO_FLAG_PORT_RESSETING (1 << 19) 80 #define USBHUB_PDO_FLAG_IDLE_NOTIFICATION (1 << 22) 81 #define USBHUB_PDO_FLAG_PORT_HIGH_SPEED (1 << 23) 82 #define USBHUB_PDO_FLAG_ENUMERATED (1 << 26) 84 #define USBHUB_ENUM_FLAG_DEVICE_PRESENT 0x01 85 #define USBHUB_ENUM_FLAG_GHOST_DEVICE 0x02 88 #define USBHUB_FEATURE_C_HUB_LOCAL_POWER 0 89 #define USBHUB_FEATURE_C_HUB_OVER_CURRENT 1 91 #define USBHUB_FEATURE_PORT_CONNECTION 0 92 #define USBHUB_FEATURE_PORT_ENABLE 1 93 #define USBHUB_FEATURE_PORT_SUSPEND 2 94 #define USBHUB_FEATURE_PORT_OVER_CURRENT 3 95 #define USBHUB_FEATURE_PORT_RESET 4 96 #define USBHUB_FEATURE_PORT_POWER 8 97 #define USBHUB_FEATURE_PORT_LOW_SPEED 9 98 #define USBHUB_FEATURE_C_PORT_CONNECTION 16 99 #define USBHUB_FEATURE_C_PORT_ENABLE 17 100 #define USBHUB_FEATURE_C_PORT_SUSPEND 18 101 #define USBHUB_FEATURE_C_PORT_OVER_CURRENT 19 102 #define USBHUB_FEATURE_C_PORT_RESET 20 103 #define USBHUB_FEATURE_PORT_TEST 21 104 #define USBHUB_FEATURE_PORT_INDICATOR 22 106 #define USBHUB_MAX_CASCADE_LEVELS 6 107 #define USBHUB_RESET_PORT_MAX_RETRY 3 108 #define USBHUB_MAX_REQUEST_ERRORS 3 111 #define USBHUB_FAIL_NO_FAIL 5 112 #define USBHUB_FAIL_NESTED_TOO_DEEPLY 6 113 #define USBHUB_FAIL_OVERCURRENT 7 564 IN PUSB_NODE_CONNECTION_INFORMATION_EX
Info,
VOID NTAPI USBH_HubCancelIdleIrp(IN PUSBHUB_FDO_EXTENSION HubExtension, IN PIRP IdleIrp)
struct _USBHUB_FDO_EXTENSION * PUSBHUB_FDO_EXTENSION
NTSTATUS NTAPI USBH_FdoSyncSubmitUrb(IN PDEVICE_OBJECT FdoDevice, IN PURB Urb)
enum _USB_DEVICE_TYPE USB_DEVICE_TYPE
PUSBHUB_FDO_EXTENSION HubExtension
KSEMAPHORE HubPortSemaphore
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
NTSTATUS NTAPI USBD_RestoreDeviceEx(IN PUSBHUB_FDO_EXTENSION HubExtension, IN OUT PUSB_DEVICE_HANDLE OldDeviceHandle, IN OUT PUSB_DEVICE_HANDLE NewDeviceHandle)
PUSB_DEVICE_HANDLE DeviceHandle
_Inout_ PUSB_DEVICE_HANDLE _Out_writes_bytes_to_ DeviceDescriptorBufferLength PUCHAR _Inout_ PULONG _Out_writes_bytes_to_ ConfigDescriptorBufferLength PUCHAR ConfigDescriptorBuffer
struct _USBHUB_IDLE_PORT_CANCEL_CONTEXT * PUSBHUB_IDLE_PORT_CANCEL_CONTEXT
struct _USBHUB_PORT_PDO_EXTENSION USBHUB_PORT_PDO_EXTENSION
DEVICE_POWER_STATE DeviceWake
_In_ ULONG _In_ ULONG _In_ ULONG Length
NTSTATUS NTAPI USBH_CheckDeviceLanguage(IN PDEVICE_OBJECT DeviceObject, IN USHORT LanguageId)
_Inout_ PUSB_DEVICE_HANDLE DeviceHandle
VOID NTAPI USBH_IdleCancelPowerHubWorker(IN PUSBHUB_FDO_EXTENSION HubExtension, IN PVOID Context)
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
WORK_QUEUE_TYPE HubWorkItemType
struct _USBHUB_FDO_EXTENSION USBHUB_FDO_EXTENSION
struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST SCEWorkerUrb
PUSBHUB_FDO_EXTENSION HubExtension
struct _USBHUB_STATUS_CHANGE_CONTEXT USBHUB_STATUS_CHANGE_CONTEXT
struct _USBHUB_IDLE_HUB_CONTEXT * PUSBHUB_IDLE_HUB_CONTEXT
struct _USBHUB_IDLE_HUB_CONTEXT USBHUB_IDLE_HUB_CONTEXT
NTSTATUS NTAPI USBD_UnRegisterRootHubCallBack(IN PUSBHUB_FDO_EXTENSION HubExtension)
USB_IDLE_CALLBACK_INFO IdleCallbackInfo
USB_PORT_STATUS_AND_CHANGE PortStatus
_In_ ULONG DevInstKeyType
NTSTATUS NTAPI USBH_SyncGetHubCount(IN PDEVICE_OBJECT DeviceObject, IN OUT PULONG OutHubCount)
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_ PFLT_DEFERRED_IO_WORKITEM_ROUTINE WorkerRoutine
PUSBHUB_FDO_EXTENSION HubExtension
struct _USBHUB_RESET_PORT_CONTEXT * PUSBHUB_RESET_PORT_CONTEXT
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
UNICODE_STRING SymbolicLinkName
NTSTATUS NTAPI USBH_HubSetD0(IN PUSBHUB_FDO_EXTENSION HubExtension)
NTSTATUS NTAPI USBH_CreateDevice(IN PUSBHUB_FDO_EXTENSION HubExtension, IN USHORT Port, IN USB_PORT_STATUS UsbPortStatus, IN ULONG IsWait)
USB_CONFIGURATION_DESCRIPTOR ConfigDescriptor
NTSTATUS NTAPI USBH_PdoPower(IN PUSBHUB_PORT_PDO_EXTENSION PortExtension, IN PIRP Irp, IN UCHAR Minor)
PUSBHUB_PORT_PDO_EXTENSION NTAPI PdoExt(IN PDEVICE_OBJECT DeviceObject)
NTSTATUS NTAPI USBH_ResetDevice(IN PUSBHUB_FDO_EXTENSION HubExtension, IN USHORT Port, IN BOOLEAN IsKeepDeviceData, IN BOOLEAN IsWait)
VOID NTAPI USBH_HubCancelWakeIrp(IN PUSBHUB_FDO_EXTENSION HubExtension, IN PIRP Irp)
USB_CONNECTION_STATUS ConnectionStatus
PUSBHUB_IO_WORK_ITEM WorkItemToQueue
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
VOID NTAPI USBHUB_DumpingConfiguration(IN PUSB_CONFIGURATION_DESCRIPTOR ConfigDescriptor)
PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
NTSTATUS NTAPI USBH_SyncGetHubDescriptor(IN PUSBHUB_FDO_EXTENSION HubExtension)
struct _USBHUB_IDLE_PORT_CONTEXT * PUSBHUB_IDLE_PORT_CONTEXT
_In_ PDEVICE_OBJECT DeviceObject
_Inout_ PUSB_DEVICE_HANDLE OldDeviceHandle
_In_ WDFDEVICE _Out_ PWDF_DEVICE_STATE DeviceState
POWER_STATE CurrentPowerState
LONG PendingSystemPoRequest
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
_In_ PVOID _In_ PDEVICE_OBJECT UsbDevicePdo
VOID NTAPI USBH_CompletePowerIrp(IN PUSBHUB_FDO_EXTENSION HubExtension, IN PIRP Irp, IN NTSTATUS NtStatus)
USB_BUS_INTERFACE_HUB_V5 BusInterface
PDEVICE_OBJECT RootHubPdo2
VOID NTAPI USBHUB_SetDeviceHandleData(IN PUSBHUB_FDO_EXTENSION HubExtension, IN PDEVICE_OBJECT UsbDevicePdo, IN PVOID DeviceHandle)
PUSBHUB_FDO_EXTENSION NTAPI USBH_GetRootHubExtension(IN PUSBHUB_FDO_EXTENSION HubExtension)
_Inout_ PUSB_DEVICE_HANDLE _Out_writes_bytes_to_ DeviceDescriptorBufferLength PUCHAR DeviceDescriptorBuffer
SYSTEM_POWER_STATE SystemWake
COMMON_DEVICE_EXTENSION Common
NTSTATUS NTAPI USBD_CreateDeviceEx(IN PUSBHUB_FDO_EXTENSION HubExtension, IN PUSB_DEVICE_HANDLE *OutDeviceHandle, IN USB_PORT_STATUS UsbPortStatus, IN USHORT Port)
NTSTATUS NTAPI USBH_AllocateWorkItem(IN PUSBHUB_FDO_EXTENSION HubExtension, OUT PUSBHUB_IO_WORK_ITEM *OutHubIoWorkItem, IN PUSBHUB_WORKER_ROUTINE WorkerRoutine, IN SIZE_T BufferLength, OUT PVOID *OutHubWorkItemBuffer, IN WORK_QUEUE_TYPE Type)
VOID NTAPI USBHUB_FlushAllTransfers(IN PUSBHUB_FDO_EXTENSION HubExtension)
VOID NTAPI USBH_HubCompletePortWakeIrps(IN PUSBHUB_FDO_EXTENSION HubExtension, IN NTSTATUS NtStatus)
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_writes_bytes_to_opt_ ConfigDescriptorLength PVOID ConfigDescriptor
NTSTATUS NTAPI USBH_SyncResetPort(IN PUSBHUB_FDO_EXTENSION HubExtension, IN USHORT Port)
PUSBHUB_WORKER_ROUTINE HubWorkerRoutine
KSPIN_LOCK PortPowerListSpinLock
NTSTATUS NTAPI USBH_PassIrp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
struct _USBHUB_IDLE_PORT_CANCEL_CONTEXT USBHUB_IDLE_PORT_CANCEL_CONTEXT
USB_DEVICE_DESCRIPTOR DeviceDescriptor
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
const KSDEVICE_DESCRIPTOR DeviceDescriptor
NTSTATUS NTAPI USBD_InitializeDeviceEx(IN PUSBHUB_FDO_EXTENSION HubExtension, IN PUSB_DEVICE_HANDLE DeviceHandle, IN PUCHAR DeviceDescriptorBuffer, IN ULONG DeviceDescriptorBufferLength, IN PUCHAR ConfigDescriptorBuffer, IN ULONG ConfigDescriptorBufferLength)
NTSTATUS NTAPI USBH_Wait(IN ULONG Milliseconds)
_Must_inspect_result_ _In_ ULONG Flags
NTSTATUS NTAPI USBH_SyncDisablePort(IN PUSBHUB_FDO_EXTENSION HubExtension, IN USHORT Port)
VOID NTAPI USBHUB_DumpingIDs(IN PVOID Id)
_In_ WDFCOLLECTION _In_ ULONG Index
POWER_STATE SystemPowerState
USB_PORT_STATUS_AND_CHANGE PortStatus
NTSTATUS NTAPI USBH_GetDeviceType(IN PUSBHUB_FDO_EXTENSION HubExtension, IN PUSB_DEVICE_HANDLE DeviceHandle, OUT USB_DEVICE_TYPE *OutDeviceType)
PDEVICE_OBJECT LowerDevice
NTSTATUS NTAPI USBH_SyncClearPortStatus(IN PUSBHUB_FDO_EXTENSION HubExtension, IN USHORT Port, IN USHORT RequestValue)
struct _USBHUB_URB_TIMEOUT_CONTEXT * PUSBHUB_URB_TIMEOUT_CONTEXT
USB_DEVICE_DESCRIPTOR OldDeviceDescriptor
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING InstanceID
USB_BUS_INTERFACE_USBDI_V2 BusInterfaceUSBDI
NTSTATUS NTAPI USBD_GetDeviceInformationEx(IN PUSBHUB_PORT_PDO_EXTENSION PortExtension, IN PUSBHUB_FDO_EXTENSION HubExtension, IN PUSB_NODE_CONNECTION_INFORMATION_EX Info, IN ULONG Length, IN PUSB_DEVICE_HANDLE DeviceHandle)
VOID NTAPI USBHUB_DumpingDeviceDescriptor(IN PUSB_DEVICE_DESCRIPTOR DeviceDescriptor)
_Inout_ PUSB_DEVICE_HANDLE _Out_writes_bytes_to_ DeviceDescriptorBufferLength PUCHAR _Inout_ PULONG DeviceDescriptorBufferLength
enum _WORK_QUEUE_TYPE WORK_QUEUE_TYPE
KEVENT PendingRequestEvent
KSPIN_LOCK CheckIdleSpinLock
struct _COMMON_DEVICE_EXTENSION COMMON_DEVICE_EXTENSION
_Out_ _Inout_ POEM_STRING _In_ PCUNICODE_STRING SourceString
VOID NTAPI USBH_FreeWorkItem(IN PUSBHUB_IO_WORK_ITEM HubIoWorkItem)
NTSTATUS NTAPI DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
NTSTATUS NTAPI USBH_SyncGetStringDescriptor(IN PDEVICE_OBJECT DeviceObject, IN UCHAR Index, IN USHORT LanguageId, IN PUSB_STRING_DESCRIPTOR Descriptor, IN ULONG NumberOfBytes, IN PULONG OutLength, IN BOOLEAN IsValidateLength)
_Inout_ PUSB_DEVICE_HANDLE _Out_writes_bytes_to_ DeviceDescriptorBufferLength PUCHAR _Inout_ PULONG _Out_writes_bytes_to_ ConfigDescriptorBufferLength PUCHAR _Inout_ PULONG ConfigDescriptorBufferLength
NTSTATUS NTAPI USBH_SyncGetRootHubPdo(IN PDEVICE_OBJECT DeviceObject, IN OUT PDEVICE_OBJECT *OutPdo1, IN OUT PDEVICE_OBJECT *OutPdo2)
VOID(NTAPI * PUSBHUB_WORKER_ROUTINE)(IN PUSBHUB_FDO_EXTENSION HubExtension, IN PVOID Context)
KSPIN_LOCK UrbTimeoutSpinLock
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT PortStatus
PUSB_CONFIGURATION_DESCRIPTOR HubConfigDescriptor
NTSTATUS NTAPI USBH_PdoPnP(IN PUSBHUB_PORT_PDO_EXTENSION PortExtension, IN PIRP Irp, IN UCHAR Minor, OUT BOOLEAN *IsCompleteIrp)
struct _USBHUB_PORT_PDO_EXTENSION * PUSBHUB_PORT_PDO_EXTENSION
KSPIN_LOCK PortTimeoutSpinLock
LIST_ENTRY HubWorkItemLink
BOOLEAN NTAPI USBH_HubIsBusPowered(IN PDEVICE_OBJECT DeviceObject, IN PUSB_CONFIGURATION_DESCRIPTOR HubConfigDescriptor)
PUSB_HUB_DESCRIPTOR HubDescriptor
KSPIN_LOCK WorkItemSpinLock
POWER_STATE CurrentPowerState
USB_DEVICE_DESCRIPTOR HubDeviceDescriptor
USBD_PIPE_INFORMATION PipeInfo
struct _USBHUB_URB_TIMEOUT_CONTEXT USBHUB_URB_TIMEOUT_CONTEXT
VOID NTAPI USBH_CompleteIrp(IN PIRP Irp, IN NTSTATUS CompleteStatus)
enum _USB_CONNECTION_STATUS USB_CONNECTION_STATUS
NTSTATUS NTAPI USBD_RegisterRootHubCallBack(IN PUSBHUB_FDO_EXTENSION HubExtension)
PUSB_DEVICE_HANDLE NTAPI USBH_SyncGetDeviceHandle(IN PDEVICE_OBJECT DeviceObject)
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
NTSTATUS NTAPI USBH_FdoPnP(IN PUSBHUB_FDO_EXTENSION HubExtension, IN PIRP Irp, IN UCHAR Minor)
PDEVICE_OBJECT RootHubPdo
NTSTATUS NTAPI USBH_FdoPower(IN PUSBHUB_FDO_EXTENSION HubExtension, IN PIRP Irp, IN UCHAR Minor)
NTSTATUS NTAPI USBH_SyncPowerOnPorts(IN PUSBHUB_FDO_EXTENSION HubExtension)
struct _USBHUB_RESET_PORT_CONTEXT USBHUB_RESET_PORT_CONTEXT
COMMON_DEVICE_EXTENSION Common
NTSTATUS NTAPI USBH_GetDeviceDescriptor(IN PDEVICE_OBJECT DeviceObject, IN PUSB_DEVICE_DESCRIPTOR HubDeviceDescriptor)
KSEMAPHORE ResetDeviceSemaphore
USBD_CONFIGURATION_HANDLE ConfigHandle
NTSTATUS NTAPI USBH_SyncSubmitUrb(IN PDEVICE_OBJECT DeviceObject, IN PURB Urb)
NTSTATUS NTAPI USBH_WriteFailReasonID(IN PDEVICE_OBJECT DeviceObject, IN ULONG Data)
VOID NTAPI USBH_CheckIdleDeferred(IN PUSBHUB_FDO_EXTENSION HubExtension)
NTSTATUS NTAPI USBH_GetConfigurationDescriptor(IN PDEVICE_OBJECT DeviceObject, IN PUSB_CONFIGURATION_DESCRIPTOR *pConfigurationDescriptor)
struct tagContext Context
NTSTATUS NTAPI USBH_PdoRemoveDevice(IN PUSBHUB_PORT_PDO_EXTENSION PortExtension, IN PUSBHUB_FDO_EXTENSION HubExtension)
NTSTATUS NTAPI USBH_SetPdoRegistryParameter(IN PDEVICE_OBJECT DeviceObject, IN PCWSTR SourceString, IN PVOID Data, IN ULONG DataSize, IN ULONG Type, IN ULONG DevInstKeyType)
PDEVICE_OBJECT SelfDevice
USHORT SN_DescriptorLength
KEVENT RootHubNotificationEvent
PUSBHUB_FDO_EXTENSION RootHubExtension
PUSBHUB_PORT_PDO_EXTENSION PortExtension
_Outptr_ PUSB_DEVICE_HANDLE * NewDeviceHandle
KSPIN_LOCK RelationsWorkerSpinLock
PWSTR GenericUSBDeviceString
DEVICE_CAPABILITIES Capabilities
struct _COMMON_DEVICE_EXTENSION * PCOMMON_DEVICE_EXTENSION
LONG PendingDevicePoRequest
NTSTATUS NTAPI USBH_PdoInternalControl(IN PUSBHUB_PORT_PDO_EXTENSION PortExtension, IN PIRP Irp)
PUSBHUB_PORT_DATA PortData
struct _USBHUB_IO_WORK_ITEM * PUSBHUB_IO_WORK_ITEM
VOID NTAPI USBH_QueueWorkItem(IN PUSBHUB_FDO_EXTENSION HubExtension, IN PUSBHUB_IO_WORK_ITEM HubIoWorkItem)
NTSTATUS NTAPI USBH_SyncGetPortStatus(IN PUSBHUB_FDO_EXTENSION HubExtension, IN USHORT Port, IN PUSB_PORT_STATUS_AND_CHANGE PortStatus, IN ULONG Length)
struct _USBHUB_PORT_DATA USBHUB_PORT_DATA
VOID NTAPI USBH_CheckHubIdle(IN PUSBHUB_FDO_EXTENSION HubExtension)
struct _USBHUB_IDLE_PORT_CONTEXT USBHUB_IDLE_PORT_CONTEXT
struct _USBHUB_PORT_DATA * PUSBHUB_PORT_DATA
#define POWER_SYSTEM_MAXIMUM
NTSTATUS NTAPI USBH_SubmitStatusChangeTransfer(IN PUSBHUB_FDO_EXTENSION HubExtension)
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
NTSTATUS NTAPI USBD_RemoveDeviceEx(IN PUSBHUB_FDO_EXTENSION HubExtension, IN PUSB_DEVICE_HANDLE DeviceHandle, IN ULONG Flags)
USB_INTERFACE_DESCRIPTOR InterfaceDescriptor
NTSTATUS NTAPI USBH_DeviceControl(IN PUSBHUB_FDO_EXTENSION HubExtension, IN PIRP Irp)
BOOLEAN NTAPI USBH_CheckIdleAbort(IN PUSBHUB_FDO_EXTENSION HubExtension, IN BOOLEAN IsWait, IN BOOLEAN IsExtCheck)
struct _USBHUB_STATUS_CHANGE_CONTEXT * PUSBHUB_STATUS_CHANGE_CONTEXT
struct _USBHUB_IO_WORK_ITEM USBHUB_IO_WORK_ITEM