11#define UCX_DEVICE_TYPE_HUB 0x1
12#define UCX_DEVICE_TYPE_ROOT_HUB 0x2
204 EnableForwardProgress(
static T & Reset(T &sei, UINT flags=SEE_MASK_FLAG_NO_UI)
const struct winhelp_callbacks Callbacks
PFN_UCX_OPERATION_DONE m_PendingOperationDone
UcxController * m_Controller
BOOLEAN m_EndpointResetFailedByControllerReset
VOID HandleHubStartIo(_In_ WDFREQUEST Request)
VOID HandleHubTreePurge(_In_ WDFREQUEST Request)
VOID HandleHubEndpointsConfigure(_In_ WDFREQUEST Request, _In_ BOOLEAN AfterReset)
VOID DispatchManagement(_In_ WDFREQUEST Request, _In_ ULONG IoControlCode)
BOOLEAN m_ChildrenMayLeavePurge
VOID HandleHubAbortIo(_In_ WDFREQUEST Request)
VOID RemoteWakeNotification(_In_ ULONG Interface)
static UcxUsbDevice * FromHandle(_In_ UCXUSBDEVICE Handle)
LIST_ENTRY m_EndpointList
static EVT_WDF_REQUEST_CANCEL EvtRemoteWakeCancel
VOID SendEndpointsConfigureToController()
BOOLEAN IsRootHub() const
UcxEndpoint * m_DefaultEndpoint
VOID WalkSubtree(_In_ PFN_UCX_DEVICE_VISITOR Visitor, _In_opt_ PVOID Context, _In_ BOOLEAN IncludeDisconnected)
VOID RequestRemoteWakeNotification(_In_ WDFREQUEST Request)
NTSTATUS OnHcdEnableDone(_In_ PIRP Irp, _In_ PUSBDEVICE_ENABLE Enable)
LONG m_PendingNoPingResponse
VOID CompleteHubRequest()
ULONG64 Timestamp() const
VOID CompleteHubOperation()
_IRQL_requires_(PASSIVE_LEVEL) NTSTATUS EnableForwardProgress(_In_ PUCXHUB_FORWARD_PROGRESS_INFO Info)
BOOLEAN m_DeprogrammedByControllerReset
static VOID InitSetEventCallbacks(_Inout_ PUCXUSBDEVICE_INIT Init, _In_ PUCX_USBDEVICE_EVENT_CALLBACKS Callbacks)
BOOLEAN m_ResetFailedByControllerReset
ULONG m_TransferFailureCount
VOID InitializeAsRootHub(_In_ UCXROOTHUB Handle, _In_ UcxController *Controller)
WDFMEMORY m_FunctionsMemory
VOID DisconnectPort(_In_ ULONG PortNumber)
VOID CompleteEndpointsConfigureIrp()
VOID SetFunctionData(_In_ WDFREQUEST Request)
VOID HandleHubReset(_In_ WDFREQUEST Request, _In_ BOOLEAN AfterReset)
VOID FanOutToEndpoints(_In_ EpEvent Event)
USB_DEVICE_SPEED Speed() const
LIST_ENTRY m_TrackingList
VOID(UcxUsbDevice::* PFN_UCX_OPERATION_DONE)()
VOID UpdateFromHub(_In_ WDFREQUEST Request)
BOOLEAN m_EndpointsMayLeavePurge
KSPIN_LOCK m_TrackingLock
BOOLEAN AllowsEndpointStart() const
VOID StartOperation(_In_ PVOID Pending, _In_ PFN_UCX_OPERATION_DONE Done, _In_ LONG Count)
VOID ReportNoPingResponseIfPending()
PFN_UCXHUB_NO_PING_RESPONSE m_HubNoPingResponse
VOID FinishEndpointResetRequest()
VOID PendEndpointsConfigure()
VOID FailManagement(_In_ WDFREQUEST Request, _In_ ULONG IoControlCode)
VOID SetPdo(_In_ PDEVICE_OBJECT Pdo)
LIST_ENTRY m_UsbdHandleList
NTSTATUS OnHcdEndpointsConfigureDone(_In_ PIRP Irp, _In_ PENDPOINTS_CONFIGURE Configure)
BOOLEAN m_HubUsesGrownInterface
UCXHUB_HUB_CONTEXT m_HubContext
KSPIN_LOCK m_RemoteWakeLock
BOOLEAN m_FailNextStreamClose
UcxUsbDeviceCallbacks m_Callbacks
UcxFunctionRecord * m_Functions
VOID SendResetToController()
static EVT_WDF_OBJECT_CONTEXT_DESTROY EvtDestroy
UCXHUB_DEVICE_CONTEXT m_HubDeviceContext
VOID RegisterComposite(_In_ WDFREQUEST Request)
VOID UnregisterComposite(_In_ WDFREQUEST Request)
UcxRemoteWakeSlot m_RemoteWake
KSPIN_LOCK m_UsbdHandleLock
VOID SendDisableToController()
BOOLEAN m_StalePipeIoAllowed
NTSTATUS OnHcdResetDone(_In_ PIRP Irp, _In_ PUSBDEVICE_RESET Reset)
VOID HandleHubDisable(_In_ WDFREQUEST Request, _In_ BOOLEAN AfterReset)
VOID HandleHubPurgeIo(_In_ WDFREQUEST Request, _In_ BOOLEAN OnSuspend)
LIST_ENTRY m_StaleEndpointList
PFN_UCXHUB_CLEAR_TT_BUFFER m_HubClearTtBuffer
LONG m_PendingOperationCount
UcxUsbDevice * m_ParentHub
static _Must_inspect_result_ NTSTATUS CreateFromHub(_In_ UCXUSBDEVICE Hub, _In_ PUCXHUB_DEVICE_CREATE_INFO Info, _Out_ UCXUSBDEVICE *UsbDevice)
EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL UcxEvtTreePurgeIoInternalDeviceControl
#define UCX_DEVICE_TYPE_ROOT_HUB
EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL UcxEvtDeviceMgmtIoInternalDeviceControl
#define UCX_DEVICE_TYPE_HUB
EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL UcxEvtPendDuringResetIoInternalDeviceControl
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
_In_ UCXUSBDEVICE UsbDevice
VOID(NTAPI * PFN_UCX_DEVICE_VISITOR)(_In_ UcxUsbDevice *Device, _In_opt_ PVOID Context)
_In_ UCXUSBDEVICE _In_ PDEVICE_OBJECT Pdo
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
static LRESULT Configure(const CodecInfo *pi, HWND hWnd)
#define _Must_inspect_result_
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
PREQUEST_REMOTE_WAKE_NOTIFICATION Params
UCX_USBDEVICE_EVENT_CALLBACKS Public
USB_DEVICE_SPEED DeviceSpeed
UCXHUB_DEVICE_CONTEXT HubDeviceContext
UcxUsbDeviceCallbacks Callbacks
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXCONTROLLER * Controller
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request
_In_ UCXUSBDEVICE _In_ ULONG Interface
enum _USB_DEVICE_SPEED USB_DEVICE_SPEED
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
#define WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(_contexttype, _castingfunction)