23 #define PCI_INTERFACE_USB_ID_UHCI 0x00 24 #define PCI_INTERFACE_USB_ID_OHCI 0x10 25 #define PCI_INTERFACE_USB_ID_EHCI 0x20 26 #define PCI_INTERFACE_USB_ID_XHCI 0x30 28 #ifdef USBD_TRANSFER_DIRECTION // due hubbusif.h included usbdi.h (Which overwrites...) 29 #undef USBD_TRANSFER_DIRECTION 30 #define USBD_TRANSFER_DIRECTION 0x00000001 33 #define USBPORT_RECIPIENT_HUB BMREQUEST_TO_DEVICE 34 #define USBPORT_RECIPIENT_PORT BMREQUEST_TO_OTHER 36 #define INVALIDATE_ENDPOINT_ONLY 0 37 #define INVALIDATE_ENDPOINT_WORKER_THREAD 1 38 #define INVALIDATE_ENDPOINT_WORKER_DPC 2 39 #define INVALIDATE_ENDPOINT_INT_NEXT_SOF 3 41 #define USBPORT_DMA_DIRECTION_FROM_DEVICE 1 42 #define USBPORT_DMA_DIRECTION_TO_DEVICE 2 44 #define USB_PORT_TAG 'pbsu' 45 #define URB_FUNCTION_MAX 0x31 48 #define FEATURE_PORT_CONNECTION 0 49 #define FEATURE_PORT_ENABLE 1 50 #define FEATURE_PORT_SUSPEND 2 51 #define FEATURE_PORT_OVER_CURRENT 3 52 #define FEATURE_PORT_RESET 4 53 #define FEATURE_PORT_POWER 8 54 #define FEATURE_PORT_LOW_SPEED 9 55 #define FEATURE_C_PORT_CONNECTION 16 56 #define FEATURE_C_PORT_ENABLE 17 57 #define FEATURE_C_PORT_SUSPEND 18 58 #define FEATURE_C_PORT_OVER_CURRENT 19 59 #define FEATURE_C_PORT_RESET 20 62 #define FEATURE_C_HUB_LOCAL_POWER 0 63 #define FEATURE_C_HUB_OVER_CURRENT 1 66 #define USBPORT_FLAG_INT_CONNECTED 0x00000001 67 #define USBPORT_FLAG_HC_STARTED 0x00000002 68 #define USBPORT_FLAG_HC_POLLING 0x00000004 69 #define USBPORT_FLAG_WORKER_THREAD_ON 0x00000008 70 #define USBPORT_FLAG_WORKER_THREAD_EXIT 0x00000010 71 #define USBPORT_FLAG_HC_SUSPEND 0x00000100 72 #define USBPORT_FLAG_INTERRUPT_ENABLED 0x00000400 73 #define USBPORT_FLAG_SELECTIVE_SUSPEND 0x00000800 74 #define USBPORT_FLAG_DOS_SYMBOLIC_NAME 0x00010000 75 #define USBPORT_FLAG_LEGACY_SUPPORT 0x00080000 76 #define USBPORT_FLAG_HC_WAKE_SUPPORT 0x00200000 77 #define USBPORT_FLAG_DIAGNOSTIC_MODE 0x00800000 //IOCTL_USB_DIAGNOSTIC_MODE_ON 78 #define USBPORT_FLAG_COMPANION_HC 0x01000000 79 #define USBPORT_FLAG_REGISTERED_FDO 0x02000000 80 #define USBPORT_FLAG_NO_HACTION 0x04000000 81 #define USBPORT_FLAG_BIOS_DISABLE_SS 0x08000000 //Selective Suspend 82 #define USBPORT_FLAG_PWR_AND_CHIRP_LOCK 0x10000000 83 #define USBPORT_FLAG_POWER_AND_CHIRP_OK 0x40000000 84 #define USBPORT_FLAG_RH_INIT_CALLBACK 0x80000000 87 #define USBPORT_PNP_STATE_NOT_INIT 0x00000001 88 #define USBPORT_PNP_STATE_STARTED 0x00000002 89 #define USBPORT_PNP_STATE_FAILED 0x00000004 90 #define USBPORT_PNP_STATE_STOPPED 0x00000008 93 #define USBPORT_TMFLAG_TIMER_QUEUED 0x00000001 94 #define USBPORT_TMFLAG_HC_SUSPENDED 0x00000002 95 #define USBPORT_TMFLAG_HC_RESUME 0x00000004 96 #define USBPORT_TMFLAG_RH_SUSPENDED 0x00000008 97 #define USBPORT_TMFLAG_TIMER_STARTED 0x00000010 98 #define USBPORT_TMFLAG_WAKE 0x00000020 99 #define USBPORT_TMFLAG_IDLE_QUEUEITEM_ON 0x00000040 102 #define USBPORT_MPFLAG_INTERRUPTS_ENABLED 0x00000001 103 #define USBPORT_MPFLAG_SUSPENDED 0x00000002 106 #define DEVICE_HANDLE_FLAG_ROOTHUB 0x00000002 107 #define DEVICE_HANDLE_FLAG_REMOVED 0x00000008 108 #define DEVICE_HANDLE_FLAG_USB2HUB 0x00000010 111 #define ENDPOINT_FLAG_DMA_TYPE 0x00000001 112 #define ENDPOINT_FLAG_ROOTHUB_EP0 0x00000002 113 #define ENDPOINT_FLAG_NUKE 0x00000008 114 #define ENDPOINT_FLAG_QUEUENE_EMPTY 0x00000010 115 #define ENDPOINT_FLAG_ABORTING 0x00000020 116 #define ENDPOINT_FLAG_IDLE 0x00000100 117 #define ENDPOINT_FLAG_OPENED 0x00000200 118 #define ENDPOINT_FLAG_CLOSED 0x00000400 121 #define USBD_FLAG_ALLOCATED_MDL 0x00000002 122 #define USBD_FLAG_NOT_ISO_TRANSFER 0x00000010 123 #define USBD_FLAG_ALLOCATED_TRANSFER 0x00000020 126 #define PIPE_HANDLE_FLAG_CLOSED 0x00000001 127 #define PIPE_HANDLE_FLAG_NULL_PACKET_SIZE 0x00000002 130 #define TRANSFER_FLAG_CANCELED 0x00000001 131 #define TRANSFER_FLAG_DMA_MAPPED 0x00000002 132 #define TRANSFER_FLAG_HIGH_SPEED 0x00000004 133 #define TRANSFER_FLAG_SUBMITED 0x00000008 134 #define TRANSFER_FLAG_ABORTED 0x00000010 135 #define TRANSFER_FLAG_ISO 0x00000020 136 #define TRANSFER_FLAG_DEVICE_GONE 0x00000080 137 #define TRANSFER_FLAG_SPLITED 0x00000100 138 #define TRANSFER_FLAG_COMPLETED 0x00000200 139 #define TRANSFER_FLAG_PARENT 0x00000400 452 #define USB2_FRAMES 32 453 #define USB2_MICROFRAMES 8 454 #define USB2_MAX_MICROFRAMES (USB2_FRAMES * USB2_MICROFRAMES) 455 #define USB2_PREV_MICROFRAME 0xFF 457 #define USB2_MAX_MICROFRAME_ALLOCATION 7000 // bytes 458 #define USB2_CONTROLLER_DELAY 100 459 #define USB2_FS_MAX_PERIODIC_ALLOCATION 1157 // ((12000 / 8 bits) * 0.9) / (7/6) - 90% max, and bits stuffing 460 #define USB2_FS_SOF_TIME 6 461 #define USB2_HUB_DELAY 30 462 #define USB2_MAX_FS_LS_TRANSACTIONS_IN_UFRAME 16 463 #define USB2_FS_RAW_BYTES_IN_MICROFRAME 188 // (12000 / 8 bits / USB2_MICROFRAMES) = 187,5. But we use "best case budget" 466 #define USB2_LS_INTERRUPT_OVERHEAD 117 // FS-bytes 467 #define USB2_FS_INTERRUPT_OVERHEAD 13 468 #define USB2_HS_INTERRUPT_OUT_OVERHEAD 45 469 #define USB2_HS_INTERRUPT_IN_OVERHEAD 25 470 #define USB2_FS_ISOCHRONOUS_OVERHEAD 9 471 #define USB2_HS_ISOCHRONOUS_OUT_OVERHEAD 38 472 #define USB2_HS_ISOCHRONOUS_IN_OVERHEAD 18 474 #define USB2_HS_SS_INTERRUPT_OUT_OVERHEAD 58 475 #define USB2_HS_CS_INTERRUPT_OUT_OVERHEAD 36 476 #define USB2_HS_SS_INTERRUPT_IN_OVERHEAD 39 477 #define USB2_HS_CS_INTERRUPT_IN_OVERHEAD 38 479 #define USB2_HS_SS_ISOCHRONOUS_OUT_OVERHEAD 58 480 #define USB2_HS_SS_ISOCHRONOUS_IN_OVERHEAD 39 481 #define USB2_HS_CS_ISOCHRONOUS_IN_OVERHEAD 38 483 #define USB2_BIT_STUFFING_OVERHEAD (8 * (7/6)) // 7.1.9 Bit Stuffing 546 #define USB2_TT_EXTENSION_FLAG_DELETED 1 761 PVOID MiniPortExtension,
762 PVOID FailedAssertion,
1284 PVOID MiniPortExtension);
ULONG NumberOfMapRegisters
USB2_FRAME_BUDGET FrameBudget[USB2_FRAMES]
KSPIN_LOCK SetPowerD0SpinLock
MPSTATUS NTAPI MiniportOpenEndpoint(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_ENDPOINT Endpoint)
BOOLEAN NTAPI USBPORT_EndpointWorker(IN PUSBPORT_ENDPOINT Endpoint, IN BOOLEAN Flag)
USBPORT_SCATTER_GATHER_LIST SgList
VOID NTAPI USBPORT_SetEndpointState(IN PUSBPORT_ENDPOINT Endpoint, IN ULONG State)
struct _USB2_REBALANCE USB2_REBALANCE
BOOLEAN NTAPI USBPORT_InterruptService(IN PKINTERRUPT Interrupt, IN PVOID ServiceContext)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
NTSTATUS NTAPI USBPORT_OpenPipe(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_DEVICE_HANDLE DeviceHandle, IN PUSBPORT_PIPE_HANDLE PipeHandle, IN PUSBD_STATUS UsbdStatus)
PUSB2_TT_ENDPOINT TtEndpoint
VOID NTAPI USBPORT_HcQueueWakeDpc(IN PDEVICE_OBJECT FdoDevice)
BOOLEAN NTAPI USBPORT_AllocateBandwidthUSB2(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_ENDPOINT Endpoint)
struct _USBPORT_TRANSFER USBPORT_TRANSFER
NTSTATUS NTAPI USBPORT_CreateWorkerThread(IN PDEVICE_OBJECT FdoDevice)
BOOLEAN NTAPI USBPORT_QueueDoneTransfer(IN PUSBPORT_TRANSFER Transfer, IN USBD_STATUS USBDStatus)
_In_ ULONG _In_ ULONG _In_ ULONG Length
_Inout_ PUSB_DEVICE_HANDLE DeviceHandle
NTSTATUS NTAPI USBPORT_RemoveDevice(IN PDEVICE_OBJECT FdoDevice, IN OUT PUSBPORT_DEVICE_HANDLE DeviceHandle, IN ULONG Flags)
struct _USBPORT_ASYNC_CALLBACK_DATA * PUSBPORT_ASYNC_CALLBACK_DATA
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
USBD_STATUS NTAPI USBPORT_AllocateTransfer(IN PDEVICE_OBJECT FdoDevice, IN PURB Urb, IN PUSBPORT_DEVICE_HANDLE DeviceHandle, IN PIRP Irp, IN PRKEVENT Event)
NTSTATUS NTAPI USBPORT_SendSetupPacket(IN PUSBPORT_DEVICE_HANDLE DeviceHandle, IN PDEVICE_OBJECT FdoDevice, IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket, IN PVOID Buffer, IN ULONG Length, IN OUT PULONG TransferedLen, IN OUT PUSBD_STATUS pUSBDStatus)
KSPIN_LOCK DeviceHandleSpinLock
struct _TIMER_WORK_QUEUE_ITEM * PTIMER_WORK_QUEUE_ITEM
NTSTATUS NTAPI USBPORT_FdoDeviceControl(PDEVICE_OBJECT FdoDevice, PIRP Irp)
VOID NTAPI USBPORT_BadRequestFlush(IN PDEVICE_OBJECT FdoDevice)
ULONG USBPORT_DbgPrint(IN PVOID MiniPortExtension, IN ULONG Level, IN PCH Format,...)
LIST_ENTRY ControllerLink
VOID NTAPI USBPORT_RemovePipeHandle(IN PUSBPORT_DEVICE_HANDLE DeviceHandle, IN PUSBPORT_PIPE_HANDLE PipeHandle)
VOID NTAPI USBPORT_FlushAllEndpoints(IN PDEVICE_OBJECT FdoDevice)
USB_CONFIGURATION_DESCRIPTOR ConfigDescriptor
LIST_ENTRY FlushAbortLink
LIST_ENTRY MapTransferList
VOID NTAPI USBPORT_DumpingDeviceDescriptor(IN PUSB_DEVICE_DESCRIPTOR DeviceDescriptor)
ULONG TimeUsed[USB2_FRAMES][USB2_MICROFRAMES]
VOID NTAPI USBPORT_DoneSplitTransfer(IN PUSBPORT_TRANSFER SplitTransfer)
KSPIN_LOCK BadRequestIoCsqSpinLock
PUSBPORT_COMMON_BUFFER_HEADER NTAPI USBPORT_AllocateCommonBuffer(IN PDEVICE_OBJECT FdoDevice, IN SIZE_T BufferLength)
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _In_ PWDF_USB_CONTROL_SETUP_PACKET SetupPacket
PDEVICE_OBJECT LowerPdoDevice
struct _USB2_TT_EXTENSION * PUSB2_TT_EXTENSION
NTSTATUS NTAPI USBPORT_Initialize20Hub(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_DEVICE_HANDLE HubDeviceHandle, IN ULONG TtCount)
VOID NTAPI USBPORT_AdjustDeviceCapabilities(IN PDEVICE_OBJECT FdoDevice, IN PDEVICE_OBJECT PdoDevice)
NTSTATUS NTAPI USBPORT_Wait(IN PVOID MiniPortExtension, IN ULONG Milliseconds)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
PUSB2_HC_EXTENSION HcExtension
NTSTATUS NTAPI USBPORT_HandleSelectConfiguration(IN PDEVICE_OBJECT FdoDevice, IN PIRP Irp, IN PURB Urb)
USBPORT_TRANSFER_PARAMETERS TransferParameters
VOID NTAPI USBPORT_InvalidateEndpointHandler(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_ENDPOINT Endpoint, IN ULONG Type)
struct _USBPORT_DEVICE_HANDLE * HubDeviceHandle
VOID NTAPI USBPORT_AbortEndpoint(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_ENDPOINT Endpoint, IN PIRP Irp)
UNICODE_STRING DosDeviceSymbolicName
struct _USBPORT_COMMON_DEVICE_EXTENSION * PUSBPORT_COMMON_DEVICE_EXTENSION
NTSTATUS NTAPI USBPORT_PdoPnP(IN PDEVICE_OBJECT FdoDevice, IN PIRP Irp)
VOID NTAPI USBPORT_AcquireIdleLock(IN PIO_CSQ Csq, IN PKIRQL Irql)
_In_ NTSTATUS _In_ USBD_STATUS UsbdStatus
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE HubDeviceHandle
struct _USBPORT_COMMON_BUFFER_HEADER USBPORT_COMMON_BUFFER_HEADER
VOID NTAPI USBPORT_CompleteCanceledIdleIrp(IN PIO_CSQ Csq, IN PIRP Irp)
struct _USBPORT_COMMON_BUFFER_HEADER * PUSBPORT_COMMON_BUFFER_HEADER
LIST_ENTRY DoneTransferList
DEVICE_CAPABILITIES Capabilities
ULONG UsbAddressBitMap[4]
LIST_ENTRY DeviceHandleLink
NTSTATUS NTAPI USBPORT_SetRegistryKeyValue(IN PDEVICE_OBJECT DeviceObject, IN BOOL UseDriverKey, IN ULONG Type, IN PCWSTR ValueNameString, IN PVOID Data, IN ULONG DataSize)
VOID NTAPI USBPORT_DumpingURB(IN PURB Urb)
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
VOID NTAPI USBPORT_CancelActiveTransferIrp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
VOID NTAPI USBPORT_RemoveUSBxFdo(IN PDEVICE_OBJECT FdoDevice)
BOOLEAN NTAPI USBPORT_ValidateDeviceHandle(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_DEVICE_HANDLE DeviceHandle)
VOID NTAPI USBPORT_TransferFlushDpc(IN PRKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
NTSTATUS NTAPI USBPORT_CreateDevice(IN OUT PUSB_DEVICE_HANDLE *pUsbdDeviceHandle, IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_DEVICE_HANDLE HubDeviceHandle, IN USHORT PortStatus, IN USHORT Port)
VOID NTAPI USBPORT_FreeBandwidthUSB2(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_ENDPOINT Endpoint)
VOID NTAPI USBPORT_SignalWorkerThread(IN PDEVICE_OBJECT FdoDevice)
struct _USB2_TT * PUSB2_TT
VOID NTAPI USBPORT_ReleaseBadRequestLock(IN PIO_CSQ Csq, IN KIRQL Irql)
NTSTATUS NTAPI USBPORT_FdoPower(IN PDEVICE_OBJECT FdoDevice, IN PIRP Irp)
VOID NTAPI USBPORT_FreeCommonBuffer(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_COMMON_BUFFER_HEADER HeaderBuffer)
PDEVICE_OBJECT SelfDevice
PRH_INIT_CALLBACK RootHubInitCallback
ULONG NTAPI USBPORT_GetEndpointState(IN PUSBPORT_ENDPOINT Endpoint)
LIST_ENTRY DeviceHandleList
ULONG NumStartSplits[USB2_FRAMES][USB2_MICROFRAMES]
USBPORT_COMMON_DEVICE_EXTENSION CommonExtension
VOID NTAPI USB2_InitController(IN PUSB2_HC_EXTENSION HcExtension)
struct _USB2_HC_EXTENSION USB2_HC_EXTENSION
KSPIN_LOCK StateChangeSpinLock
NTSTATUS NTAPI USBPORT_HandleSubmitURB(IN PDEVICE_OBJECT PdoDevice, IN PIRP Irp, IN PURB Urb)
VOID NTAPI USBPORT_DoIdleNotificationCallback(IN PVOID Context)
PUSB2_TT_EXTENSION TtExtension
PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
VOID NTAPI USBPORT_DoneTransfer(IN PUSBPORT_TRANSFER Transfer)
VOID NTAPI USBPORT_DoSetPowerD0(IN PDEVICE_OBJECT FdoDevice)
KSPIN_LOCK FlushPendingTransferSpinLock
C_ASSERT(sizeof(USBPORT_DEVICE_EXTENSION)==0x500)
KSEMAPHORE ControllerSemaphore
struct _USB2_TT_ENDPOINT USB2_TT_ENDPOINT
struct _USBPORT_ISO_BLOCK * PUSBPORT_ISO_BLOCK
struct _USBPORT_RHDEVICE_EXTENSION * PUSBPORT_RHDEVICE_EXTENSION
USBD_STATUS * PUSBD_STATUS
_In_ PDEVICE_OBJECT DeviceObject
VOID NTAPI USBPORT_InsertIdleIrp(IN PIO_CSQ Csq, IN PIRP Irp)
_Inout_ PUSB_DEVICE_HANDLE OldDeviceHandle
struct _USBPORT_TRANSFER * ParentTransfer
KSPIN_LOCK MiniportSpinLock
KSPIN_LOCK EpStateChangeSpinLock
VOID NTAPI USBPORT_RemoveDeviceHandle(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_DEVICE_HANDLE DeviceHandle)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
LIST_ENTRY BadRequestList
VOID NTAPI USBPORT_SplitTransfer(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_ENDPOINT Endpoint, IN PUSBPORT_TRANSFER Transfer, IN PLIST_ENTRY List)
PUSBPORT_IRP_TABLE PendingIrpTable
USB2_TT_ENDPOINT_PARAMS TtEndpointParams
VOID NTAPI USBPORT_BugCheck(IN PVOID MiniPortExtension)
_Must_inspect_result_ typedef _Out_ PHIDP_CAPS Capabilities
LIST_ENTRY PendingTransferList
PUSBPORT_COMMON_BUFFER_HEADER HeaderBuffer
VOID NTAPI MiniportCloseEndpoint(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_ENDPOINT Endpoint)
VOID NTAPI USBPORT_InsertIrpInTable(IN PUSBPORT_IRP_TABLE IrpTable, IN PIRP Irp)
USB2_TT_ENDPOINT IsoEndpoint[USB2_FRAMES]
LONG IsrDpcHandlerCounter
struct _USBPORT_IRP_TABLE * PUSBPORT_IRP_TABLE
struct _USBPORT_DEVICE_EXTENSION USBPORT_DEVICE_EXTENSION
VOID NTAPI USBPORT_ReleaseIdleLock(IN PIO_CSQ Csq, IN KIRQL Irql)
VOID NTAPI USBPORT_DumpingTtEndpoint(IN PUSB2_TT_ENDPOINT TtEndpoint)
NTSTATUS NTAPI USBPORT_RestoreDevice(IN PDEVICE_OBJECT FdoDevice, IN OUT PUSBPORT_DEVICE_HANDLE OldDeviceHandle, IN OUT PUSBPORT_DEVICE_HANDLE NewDeviceHandle)
NTSTATUS NTAPI USBPORT_HandleSelectInterface(IN PDEVICE_OBJECT FdoDevice, IN PIRP Irp, IN PURB Urb)
DEVICE_CAPABILITIES Capabilities
PUSBPORT_IRP_TABLE ActiveIrpTable
ULONG NTAPI USBPORT_AssertFailure(PVOID MiniPortExtension, PVOID FailedAssertion, PVOID FileName, ULONG LineNumber, PCHAR Message)
PUSB2_HC_EXTENSION Usb2Extension
_Out_ _Inout_ POEM_STRING DestinationString
PUSBPORT_MINIPORT_INTERFACE MiniPortInterface
_Must_inspect_result_ _In_ WDFUSBDEVICE _Out_writes_bytes_to_opt_ ConfigDescriptorLength PVOID ConfigDescriptor
union _USB2_TT_ENDPOINT_NUMS USB2_TT_ENDPOINT_NUMS
USBD_STATUS NTAPI USBPORT_InitializeIsoTransfer(IN PDEVICE_OBJECT FdoDevice, IN struct _URB_ISOCH_TRANSFER *Urb, IN PUSBPORT_TRANSFER Transfer)
PDEVICE_OBJECT RootHubPdo
struct _USBPORT_COMMON_DEVICE_EXTENSION USBPORT_COMMON_DEVICE_EXTENSION
struct _USB2_TT_ENDPOINT * PUSB2_TT_ENDPOINT
VOID NTAPI USBPORT_DumpingIDs(IN PVOID Buffer)
struct _USBPORT_PIPE_HANDLE USBPORT_PIPE_HANDLE
PUSBPORT_ENDPOINT Endpoint
PUSBPORT_CONFIGURATION_HANDLE ConfigHandle
ULONG NTAPI USBPORT_LogEntry(IN PVOID MiniPortExtension, IN ULONG DriverTag, IN ULONG EnumTag, IN ULONG P1, IN ULONG P2, IN ULONG P3)
VOID NTAPI USBPORT_WorkerRequestDpc(IN PRKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
SIZE_T PortTransferLength
USB_INTERFACE_DESCRIPTOR InterfaceDescriptor
PUSBPORT_ENDPOINT Endpoint
ULONG Bandwidth[USB2_FRAMES]
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
PDEVICE_OBJECT RootHubPdo
KTIMER TimerSoftInterrupt
PUSB2_TT_ENDPOINT IsoEndpoint
PIRP NTAPI USBPORT_PeekNextIdleIrp(IN PIO_CSQ Csq, IN PIRP Irp, IN PVOID PeekContext)
const KSDEVICE_DESCRIPTOR DeviceDescriptor
NTSTATUS NTAPI USBPORT_PdoInternalDeviceControl(IN PDEVICE_OBJECT FdoDevice, IN PIRP Irp)
PUSBPORT_ENDPOINT Endpoint
struct _USB2_TT_ENDPOINT * NextTtEndpoint
NTSTATUS NTAPI USBPORT_GetRegistryKeyValueFullInfo(IN PDEVICE_OBJECT FdoDevice, IN PDEVICE_OBJECT PdoDevice, IN BOOL UseDriverKey, IN PCWSTR SourceString, IN ULONG LengthStr, IN PVOID Buffer, IN ULONG NumberOfBytes)
KSPIN_LOCK DoneTransferSpinLock
NTSTATUS NTAPI USBPORT_IdleNotification(IN PDEVICE_OBJECT PdoDevice, IN PIRP Irp)
_Must_inspect_result_ _In_ ULONG Flags
struct _USB2_FRAME_BUDGET USB2_FRAME_BUDGET
USBPORT_DEVICE_HANDLE DeviceHandle
LIST_ENTRY InterfaceHandleList
ASYNC_TIMER_CALLBACK * CallbackFunction
VOID NTAPI USBPORT_InvalidateControllerHandler(IN PDEVICE_OBJECT FdoDevice, IN ULONG Type)
BOOLEAN NTAPI USBPORT_StartTimer(IN PDEVICE_OBJECT FdoDevice, IN ULONG Time)
struct _USBPORT_ENDPOINT USBPORT_ENDPOINT
USBPORT_RESOURCES UsbPortResources
KSPIN_LOCK FlushTransferSpinLock
struct _USBPORT_IRP_TABLE USBPORT_IRP_TABLE
KSPIN_LOCK EndpointClosedSpinLock
struct _USBPORT_ENDPOINT * PUSBPORT_ENDPOINT
USB2_TT_ENDPOINT IntEndpoint[USB2_FRAMES]
PUSBPORT_DEVICE_HANDLE DeviceHandle
RH_INIT_CALLBACK * PRH_INIT_CALLBACK
BOOLEAN NTAPI USBPORT_QueueActiveUrbToEndpoint(IN PUSBPORT_ENDPOINT Endpoint, IN PURB Urb)
struct _USBPORT_DEVICE_EXTENSION * PUSBPORT_DEVICE_EXTENSION
struct _USBPORT_RH_DESCRIPTORS * PUSBPORT_RH_DESCRIPTORS
VOID NTAPI USBPORT_HcWakeDpc(IN PRKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
struct _USBPORT_IRP_TABLE * LinkNextTable
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID ServiceContext
LIST_ENTRY EndpointClosedList
NTSTATUS NTAPI USBPORT_PdoQueryInterface(IN PDEVICE_OBJECT FdoDevice, IN PDEVICE_OBJECT PdoDevice, IN PIRP Irp)
VOID NTAPI USBPORT_FlushMapTransfers(IN PDEVICE_OBJECT FdoDevice)
VOID NTAPI USBPORT_RootHubPowerAndChirpAllCcPorts(IN PDEVICE_OBJECT FdoDevice)
VOID NTAPI USBPORT_CompleteCanceledBadRequest(IN PIO_CSQ Csq, IN PIRP Irp)
USB_DEVICE_DESCRIPTOR DeviceDescriptor
VOID NTAPI USBPORT_AcquireBadRequestLock(IN PIO_CSQ Csq, IN PKIRQL Irql)
NTSTATUS NTAPI USBPORT_PdoDeviceControl(PDEVICE_OBJECT PdoDevice, PIRP Irp)
struct _USB2_HC_EXTENSION * PUSB2_HC_EXTENSION
_Out_ _Inout_ POEM_STRING _In_ PCUNICODE_STRING SourceString
VOID NTAPI USBPORT_MiniportInterrupts(IN PDEVICE_OBJECT FdoDevice, IN BOOLEAN IsEnable)
VOID NTAPI USBPORT_CompleteTransfer(IN PURB Urb, IN USBD_STATUS TransferStatus)
LIST_ENTRY FlushControllerLink
struct _USBPORT_CONFIGURATION_HANDLE * PUSBPORT_CONFIGURATION_HANDLE
NTSTATUS NTAPI USBPORT_InitializeDevice(IN PUSBPORT_DEVICE_HANDLE DeviceHandle, IN PDEVICE_OBJECT FdoDevice)
_Must_inspect_result_ _In_ WDFCMRESLIST List
LIST_ENTRY PipeHandleList
ULONG NTAPI USBPORT_CompleteIsoTransfer(IN PVOID MiniPortExtension, IN PVOID MiniPortEndpoint, IN PVOID TransferParameters, IN ULONG TransferLength)
struct _USBPORT_CONFIGURATION_HANDLE USBPORT_CONFIGURATION_HANDLE
USB2_TT_ENDPOINT_NUMS Nums
struct _USB2_FRAME_BUDGET * PUSB2_FRAME_BUDGET
NTSTATUS NTAPI USBPORT_USBDStatusToNtStatus(IN PURB Urb, IN USBD_STATUS USBDStatus)
VOID NTAPI USBPORT_QueueTransferUrb(IN PURB Urb)
struct _USBPORT_PIPE_HANDLE * PUSBPORT_PIPE_HANDLE
VOID NTAPI USBPORT_UpdateAllocatedBwTt(IN PUSB2_TT_EXTENSION TtExtension)
USB_HUB_DESCRIPTOR Descriptor
PUSBPORT_COMMON_BUFFER_HEADER MiniPortCommonBuffer
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT PortStatus
USB_ENDPOINT_DESCRIPTOR EndpointDescriptor
VOID NTAPI USBPORT_AddDeviceHandle(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_DEVICE_HANDLE DeviceHandle)
PIRP NTAPI USBPORT_RemovePendingTransferIrp(IN PDEVICE_OBJECT FdoDevice, IN PIRP Irp)
USBPORT_PIPE_HANDLE PipeHandle
PUSB2_TT_ENDPOINT AltEndpoint
VOID NTAPI USBPORT_FlushCancelList(IN PUSBPORT_ENDPOINT Endpoint)
VOID NTAPI USBPORT_DumpingConfiguration(IN PUSB_CONFIGURATION_DESCRIPTOR ConfigDescriptor)
USBPORT_ENDPOINT_PROPERTIES EndpointProperties
struct _USBPORT_TRANSFER * PUSBPORT_TRANSFER
VOID NTAPI USBPORT_AddPipeHandle(IN PUSBPORT_DEVICE_HANDLE DeviceHandle, IN PUSBPORT_PIPE_HANDLE PipeHandle)
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
struct _USBPORT_DEVICE_HANDLE * PUSBPORT_DEVICE_HANDLE
VOID NTAPI USBPORT_DumpingEndpointProperties(IN PUSBPORT_ENDPOINT_PROPERTIES EndpointProperties)
VOID NTAPI USBPORT_DumpingCapabilities(IN PDEVICE_CAPABILITIES Capabilities)
BOOLEAN NTAPI USBPORT_EndpointHasQueuedTransfers(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_ENDPOINT Endpoint, IN PULONG TransferCount)
SIZE_T FullTransferLength
VOID NTAPI USBPORT_InsertBadRequest(IN PIO_CSQ Csq, IN PIRP Irp)
KIRQL EndpointStateOldIrql
KSPIN_LOCK WorkerThreadEventSpinLock
VOID NTAPI USBPORT_DpcHandler(IN PDEVICE_OBJECT FdoDevice)
DEVICE_POWER_STATE DevicePowerState
VOID NTAPI USBPORT_DumpingSetupPacket(IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket)
struct _USBPORT_DEVICE_HANDLE USBPORT_DEVICE_HANDLE
PUSB2_TT_ENDPOINT RebalanceEndpoint[USB2_FRAMES - 2]
VOID NTAPI USBPORT_IsrDpc(IN PRKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
NTSTATUS NTAPI USBPORT_GetSymbolicName(IN PDEVICE_OBJECT RootHubPdo, IN PUNICODE_STRING DestinationString)
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 LineNumber
KSPIN_LOCK TimerFlagsSpinLock
UNICODE_STRING SymbolicLinkName
ULONG NTAPI USBPORT_TestDebugBreak(IN PVOID MiniPortExtension)
PIRP NTAPI USBPORT_PeekNextBadRequest(IN PIO_CSQ Csq, IN PIRP Irp, IN PVOID PeekContext)
LONG BadRequestLockCounter
USBPORT_PIPE_HANDLE PipeHandle[1]
LIST_ENTRY StateChangeLink
NTSTATUS NTAPI USBPORT_RootHubCreateDevice(IN PDEVICE_OBJECT FdoDevice, IN PDEVICE_OBJECT PdoDevice)
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
union _USB2_TT_ENDPOINT_PARAMS USB2_TT_ENDPOINT_PARAMS
VOID NTAPI USBPORT_AddUSB1Fdo(IN PDEVICE_OBJECT FdoDevice)
PDEVICE_OBJECT NTAPI USBPORT_FindUSB2Controller(IN PDEVICE_OBJECT FdoDevice)
struct _USBPORT_ASYNC_CALLBACK_DATA USBPORT_ASYNC_CALLBACK_DATA
ULONG NTAPI USBPORT_InvalidateRootHub(PVOID MiniPortExtension)
VOID NTAPI USBPORT_NukeAllEndpoints(IN PDEVICE_OBJECT FdoDevice)
USB_INTERFACE_DESCRIPTOR InterfaceDescriptor
NTSTATUS NTAPI USBPORT_ReopenPipe(IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_ENDPOINT Endpoint)
struct _TIMER_WORK_QUEUE_ITEM TIMER_WORK_QUEUE_ITEM
LIST_ENTRY EpStateChangeList
HANDLE WorkerThreadHandle
LIST_ENTRY SplitTransfersList
_In_opt_ PIRP _In_opt_ PVOID PeekContext
struct _USB2_REBALANCE * PUSB2_REBALANCE
KSEMAPHORE DeviceSemaphore
KSPIN_LOCK IdleIoCsqSpinLock
KSPIN_LOCK EndpointListSpinLock
PUSBPORT_ISO_BLOCK IsoBlockPtr
PIRP NTAPI USBPORT_RemoveActiveTransferIrp(IN PDEVICE_OBJECT FdoDevice, IN PIRP Irp)
VOID NTAPI USBPORT_FlushPendingTransfers(IN PUSBPORT_ENDPOINT Endpoint)
NTSTATUS NTAPI USBPORT_FdoPnP(IN PDEVICE_OBJECT FdoDevice, IN PIRP Irp)
_In_ PUSB_DEVICE_HANDLE _In_ ULONG TtCount
PKINTERRUPT InterruptObject
struct _USBPORT_RHDEVICE_EXTENSION USBPORT_RHDEVICE_EXTENSION
BOOLEAN NTAPI USBPORT_ValidatePipeHandle(IN PUSBPORT_DEVICE_HANDLE DeviceHandle, IN PUSBPORT_PIPE_HANDLE PipeHandle)
KSPIN_LOCK RootHubCallbackSpinLock
VOID NTAPI USBPORT_FlushAbortList(IN PUSBPORT_ENDPOINT Endpoint)
PDEVICE_RELATIONS NTAPI USBPORT_FindCompanionControllers(IN PDEVICE_OBJECT USB2FdoDevice, IN BOOLEAN IsObRefer, IN BOOLEAN IsFDOsReturned)
KSPIN_LOCK PowerWakeSpinLock
PUSBPORT_RH_DESCRIPTORS RootHubDescriptors
KSPIN_LOCK TransferSpinLock
KSPIN_LOCK MapTransferSpinLock
VOID NTAPI USBPORT_RemoveBadRequest(IN PIO_CSQ Csq, IN PIRP Irp)
_Outptr_ PUSB_DEVICE_HANDLE * NewDeviceHandle
USB_DEVICE_DESCRIPTOR DeviceDescriptor
VOID NTAPI USBPORT_FlushController(IN PDEVICE_OBJECT FdoDevice)
ULONG TimeCS[USB2_FRAMES][USB2_MICROFRAMES]
USB_ENDPOINT_DESCRIPTOR EndPointDescriptor
PUSBPORT_ENDPOINT Endpoint
VOID NTAPI USB2_InitTT(IN PUSB2_HC_EXTENSION HcExtension, IN PUSB2_TT Tt)
struct _USBPORT_RH_DESCRIPTORS USBPORT_RH_DESCRIPTORS
VOID NTAPI USBPORT_FlushClosedEndpointList(IN PDEVICE_OBJECT FdoDevice)
ULONG CompletedTransferLen
PDEVICE_OBJECT LowerDevice
PUSB2_TT_EXTENSION TtExtension
USBPORT_COMMON_DEVICE_EXTENSION CommonExtension
VOID NTAPI USBPORT_AddUSB2Fdo(IN PDEVICE_OBJECT FdoDevice)
KSPIN_LOCK EndpointSpinLock
VOID NTAPI USBPORT_CancelSplitTransfer(IN PUSBPORT_TRANSFER SplitTransfer)
struct _USB2_TT_EXTENSION USB2_TT_EXTENSION
KSPIN_LOCK USBPORT_SpinLock
struct _USBPORT_INTERFACE_HANDLE * PUSBPORT_INTERFACE_HANDLE
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
BUS_INTERFACE_STANDARD BusInterface
VOID NTAPI USBPORT_RemoveIdleIrp(IN PIO_CSQ Csq, IN PIRP Irp)
static PLARGE_INTEGER Time
LIST_ENTRY USBPORT_MiniPortDrivers
VOID NTAPI USBPORT_ClosePipe(IN PUSBPORT_DEVICE_HANDLE DeviceHandle, IN PDEVICE_OBJECT FdoDevice, IN PUSBPORT_PIPE_HANDLE PipeHandle)
NTSTATUS NTAPI USBPORT_FdoInternalDeviceControl(IN PDEVICE_OBJECT FdoDevice, IN PIRP Irp)
VOID NTAPI USBPORT_FindUrbInIrpTable(IN PUSBPORT_IRP_TABLE IrpTable, IN PURB Urb, IN PIRP Irp)
KSPIN_LOCK MiniportInterruptsSpinLock
NTSTATUS NTAPI USBPORT_GetUsbDescriptor(IN PUSBPORT_DEVICE_HANDLE DeviceHandle, IN PDEVICE_OBJECT FdoDevice, IN UCHAR Type, IN PUCHAR ConfigDesc, IN PULONG ConfigDescSize)
PUSB2_TT_ENDPOINT IntEndpoint
VOID NTAPI USBPORT_RootHubEndpointWorker(PUSBPORT_ENDPOINT Endpoint)
VOID NTAPI USBPORT_CompletePdoWaitWake(IN PDEVICE_OBJECT FdoDevice)
NTSTATUS NTAPI USBPORT_PdoPower(IN PDEVICE_OBJECT PdoDevice, IN PIRP Irp)
VOID NTAPI USBPORT_StopWorkerThread(IN PDEVICE_OBJECT FdoDevice)
_In_opt_ PVOID DeferredContext
struct _USBPORT_INTERFACE_HANDLE USBPORT_INTERFACE_HANDLE