25 UCXENDPOINT
Handle()
const;
static VOID NTAPI ControlDequeueDone(_In_ XhciCommand *Command)
static EVT_WDF_OBJECT_CONTEXT_CLEANUP EvtStreamsCleanup
BOOLEAN m_ForwardProgress
PXHCI_ENDPOINT_CONTEXT InputEndpointContext(_In_ XhciDmaBuffer *Input) const
BOOLEAN UsesStreams() const
BOOLEAN IsStreamsCapable() const
_IRQL_requires_max_(DISPATCH_LEVEL) VOID Disable()
static EVT_WDF_IO_QUEUE_STATE EvtPurgeDone
ULONG StreamTransferLength(_In_ ULONG StreamId) const
static EVT_WDF_OBJECT_CONTEXT_CLEANUP EvtCleanup
static EVT_WDF_IO_QUEUE_STATE EvtAbortDone
NTSTATUS CloseStreams(_In_ XhciStreams *Streams, _In_ WDFREQUEST Request)
XhciController * m_Controller
static XhciEndpoint * FromUcx(_In_ UCXENDPOINT Endpoint)
VOID FatalError(_In_ ULONG Reason)
static VOID NTAPI ClientDequeueDone(_In_ XhciCommand *Command)
BOOLEAN PostWhenAllRings(_In_ XepEvent Event)
VOID BuildEndpointConfigure(_In_ XhciDmaBuffer *Input, _In_opt_ const VOID *EndpointContext, _In_ BOOLEAN Drop, _In_ BOOLEAN Add, _Out_ XhciCommand *Command, _In_ PFN_XHCI_COMMAND_DONE Done)
ULONG TransferType() const
UCXENDPOINT Handle() const
ULONG StreamHaltedCode() const
static EVT_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS EvtOkToCancel
VOID OnTransferCanceled()
static VOID NTAPI StopDone(_In_ XhciCommand *Command)
XhciDmaBuffer * m_StopInput
static EVT_UCX_ENDPOINT_STATIC_STREAMS_DISABLE EvtStreamsDisable
static EVT_WDF_TIMER EvtTimer
static VOID NTAPI StopAddDone(_In_ XhciCommand *Command)
BOOLEAN StreamCommandDone()
VOID OnTransferEvent(_In_ const XHCI_TRB *Event)
static VOID NTAPI DefaultUpdateDone(_In_ XhciCommand *Command)
static VOID NTAPI ResetConfigureDone(_In_ XhciCommand *Command)
const USB_ENDPOINT_DESCRIPTOR * Descriptor() const
static VOID NTAPI ResetDropDone(_In_ XhciCommand *Command)
PXHCI_STREAM_CONTEXT StreamContext(_In_ ULONG StreamId) const
static EVT_UCX_ENDPOINT_ABORT EvtAbort
static VOID NTAPI StreamsEnableDone(_In_ PVOID Context, _In_ NTSTATUS Status)
VOID OnHaltedCompletionCode(_In_ ULONG CompletionCode, _In_ BOOLEAN TransferFound)
VOID BuildContext(_Out_writes_bytes_(ContextSize) PVOID EndpointContext, _In_ ULONG ContextSize) const
XhciUsbDevice * Device() const
PENDPOINT_RESET ResetPayload() const
static VOID NTAPI CancelDequeueDone(_In_ XhciCommand *Command)
VOID OnExpectedEventsProcessed()
VOID PostCommandFailure()
static IO_COMPLETION_ROUTINE ClearStallDone
USHORT MaxPacketSize() const
USB_ENDPOINT_DESCRIPTOR m_Descriptor
BOOLEAN StreamRingEmpty(_In_ ULONG StreamId) const
_IRQL_requires_(PASSIVE_LEVEL) VOID ControllerResetDone()
static VOID NTAPI ClientResetDone(_In_ XhciCommand *Command)
static VOID NTAPI ControlResetDone(_In_ XhciCommand *Command)
USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR m_IsochCompanion
VOID ForEachRing(_In_ VOID(XhciTransferRing::*Action)())
ULONG OutputEndpointState() const
NTSTATUS CreateClearStall()
HaltClearBlock * m_ClearStall
BOOLEAN ShouldDropStoppedEvent() const
ULONG64 EndpointDequeuePointer() const
VOID BuildSetDequeue(_Out_ XhciCommand *Command, _In_ ULONG64 DequeuePointer, _In_ ULONG StreamId, _In_ PFN_XHCI_COMMAND_DONE Done)
static EVT_UCX_ENDPOINT_PURGE EvtPurge
WDFREQUEST volatile m_ResetRequest
static NTSTATUS NTAPI EvtEnableForwardProgress(_In_ UCXENDPOINT Endpoint, _In_ ULONG MaxTransferSize)
XhciController * Controller() const
VOID DequeueAfterStop(_In_ ULONG StreamId)
XhciTransferRing * m_MainRing
static EVT_UCX_DEFAULT_ENDPOINT_UPDATE EvtDefaultUpdate
static EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD EvtStreamsAdd
XhciEndpointMachine m_Machine
XhciStreams * m_DefaultStreams
VOID OnTransfersReclaimed()
BOOLEAN AnyTransfersPending() const
XhciTransferRing * RingAt(_In_ ULONG Index) const
VOID DisableRings(_In_ BOOLEAN SlotDisabling)
XhciStreams * m_CurrentStreams
USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR m_Companion
ULONG MaxEsitPayload() const
VOID ResetStreamTransferLength(_In_ ULONG StreamId)
static EVT_UCX_ENDPOINT_START EvtStart
static VOID NTAPI StreamsDisableDone(_In_ PVOID Context, _In_ NTSTATUS Status)
VOID PostEvent(_In_ XepEvent Event)
_IRQL_requires_max_(DISPATCH_LEVEL) VOID Disable(_In_ BOOLEAN SlotDisabling)
ULONG64 StreamDequeuePointer(_In_ ULONG StreamId) const
VOID DequeueAfterReset(_In_ ULONG StreamId)
VOID DisableStreamRings(_In_ XhciStreams *Streams)
VOID FreeDefaultStreams(_In_opt_ XhciStreams *Streams)
_IRQL_requires_max_(DISPATCH_LEVEL) NTSTATUS Enable()
static EVT_UCX_ENDPOINT_STATIC_STREAMS_ENABLE EvtStreamsEnable
VOID ControllerResetStarting()
static EVT_UCX_ENDPOINT_RESET EvtReset
static VOID NTAPI StopDropDone(_In_ XhciCommand *Command)
NTSTATUS OpenStreams(_In_ XhciStreams *Streams, _In_ WDFREQUEST Request)
VOID(NTAPI * PFN_XHCI_COMMAND_DONE)(_In_ XhciCommand *Command)
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T ContextSize
_Must_inspect_result_ _In_ UCXUSBDEVICE _In_ ULONG _In_opt_ PUSB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR Companion
_In_ UCXHUB_DEVICE_CONTEXT _In_ UCXENDPOINT Endpoint
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
#define _Out_writes_bytes_(s)
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
_In_ ULONG MaxTransferSize
_In_ ULONG _In_ WDFMEMORY Input
_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
_Must_inspect_result_ _In_ UCXUSBDEVICE _Inout_ PUCXENDPOINT_INIT * EndpointInit
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor