187 static XhciBulkStage*
190 static XhciBulkStage*
244 _In_ const XhciBulkStage* Stage,
304 _In_ const XhciBulkStage* Stage,
static BOOLEAN BuildTd(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkStage *Stage)
static VOID DropMdl(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkTransfer *Transfer)
static VOID FreeTransferResources(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkTransfer *Transfer)
static NTSTATUS EnableForwardProgress(_In_ XhciTransferRing *Ring, _In_ ULONG MaxTransferSize)
static VOID RecoverTransfers(_In_ XhciTransferRing *Ring)
static VOID EstimateTrbs(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkStage *Stage)
static VOID ResumeRingFill(_In_ XhciTransferRing *Ring)
static VOID StreamStopOrHaltOnce(_In_ XhciTransferRing *Ring, _In_ ULONG Flag)
static VOID InitTransfer(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkTransfer *Transfer, _In_ WDFREQUEST Request)
static EVT_WDF_DPC EvtCompletionDpc
static BOOLEAN Ed0Event(_In_ XhciTransferRing *Ring, _In_ const XHCI_TRB *Event)
static VOID KickFill(_In_ XhciTransferRing *Ring)
static BOOLEAN DoorbellRungSinceFill(_In_ const XhciTransferRing *Ring)
static VOID Ed0Mismatch(_In_ XhciTransferRing *Ring, _In_ const XHCI_TRB *Event)
static XhciBulkStage * NextTdSlot(_In_ XhciTransferRing *Ring)
static BOOLEAN OnTransferEvent(_In_opt_ XhciTransferRing *Ring, _In_ XhciController *Controller, _In_ const XHCI_TRB *Event)
static VOID Complete(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkTransfer *Transfer, _In_ USBD_STATUS Default)
static BOOLEAN OwnsRequests(_In_ const XhciTransferRing *Ring)
static const ULONG StageSlots
static VOID StoppedEvent(_In_ XhciTransferRing *Ring, _Inout_opt_ XhciBulkStage *Stage, _In_ ULONG Code, _In_ ULONG Bytes, _In_ ULONG Skipped)
static EVT_WDF_IO_QUEUE_STATE ReadyNotification
static VOID CompleteAfterUncancel(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkTransfer *Transfer, _In_ USBD_STATUS Default, _In_ BOOLEAN FinishCanceled)
static BOOLEAN EstimateSegments(_In_ XhciTransferRing *Ring, _In_ const XhciBulkStage *Stage, _Out_ PULONG Segments)
static VOID SegmentsArrived(_In_ XhciTransferRing *Ring, _In_ NTSTATUS Status)
static VOID StreamStopOrHalt(_In_ XhciTransferRing *Ring)
static EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE EvtIoCanceledOnQueue
volatile LONG m_FillAgain
static BOOLEAN IsLikelyDuplicate(_In_ const XhciTransferRing *Ring, _In_ const XHCI_TRB *Event)
static VOID QueueCompletionDpc(_In_ XhciTransferRing *Ring)
static NTSTATUS ArrangeBuffer(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkTransfer *Transfer)
volatile LONG m_FillWanted
static VOID CompleteBatch(_In_ XhciTransferRing *Ring, _Inout_ PLIST_ENTRY Batch)
static VOID SizeStage(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkStage *Stage)
static BOOLEAN HasQueuedWork(_In_ const XhciTransferRing *Ring)
static Outcome EncodeStage(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkStage *Stage)
static VOID ConsumePendingEvents(_In_ XhciTransferRing *Ring)
static VOID HaltedEvent(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkStage *Stage, _In_ ULONG Code, _In_ ULONG Bytes)
static VOID FillLoop(_In_ XhciTransferRing *Ring)
ULONG m_OutstandingEvents
static DRIVER_LIST_CONTROL DmaCallback
LIST_ENTRY m_WaitingForCancel
static BOOLEAN Ed1Event(_In_ XhciTransferRing *Ring, _In_ const XHCI_TRB *Event)
volatile LONG m_ForwardProgressBusy
volatile LONG m_SegmentWait
static VOID PutScatterGather(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkStage *Stage)
static VOID SuspendRingFill(_In_ XhciTransferRing *Ring)
static Outcome FailStage(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkStage *Stage)
static VOID OnPipeHalted(_In_ XhciTransferRing *Ring)
static VOID UndoTd(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkStage *Stage)
static Outcome PrimeStage(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkStage *Stage)
static BOOLEAN ParkOnSegments(_In_ XhciTransferRing *Ring)
static VOID ChooseMechanism(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkTransfer *Transfer)
static BOOLEAN LikelyDuplicate(_In_ const XhciTransferRing *Ring, _In_ ULONG64 Address, _Out_ PBOOLEAN PointsToNoOp)
static VOID AllowReclaimOnCancel(_In_ XhciTransferRing *Ring)
static BOOLEAN IsLiveStage(_In_ const XhciTransferRing *Ring, _In_ const XhciBulkStage *Stage, _In_ ULONG64 EventData)
static XhciBulkStage * AcquireStage(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkTransfer *Transfer)
static EVT_WDF_REQUEST_CANCEL EvtRequestCancel
static BOOLEAN LookupStage(_In_ const XhciTransferRing *Ring, _In_ ULONG64 Address, _Outptr_result_maybenull_ XhciBulkStage **Stage, _Out_ PULONG Skipped)
static VOID BuildTdsFromQueue(_In_ XhciTransferRing *Ring)
static NTSTATUS AcquireStageMdl(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkStage *Stage)
static VOID StoppedEventReceived(_In_ XhciTransferRing *Ring)
XhciBulkStage m_Stages[StageSlots]
static BOOLEAN InsertLink(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkStage *Stage, _In_ BOOLEAN FirstOfTd)
static VOID ReleaseParkedMapping(_In_ XhciTransferRing *Ring)
static VOID ReleaseStage(_In_ XhciTransferRing *Ring, _Inout_ XhciBulkStage *Stage)
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
#define DECLSPEC_ALIGN(x)
static const WCHAR Signature[]
static const WCHAR Cleanup[]
#define _Outptr_result_maybenull_
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
_In_ ULONG MaxTransferSize
XhciBulkMechanism Mechanism
XhciBulkCancel CancelState
struct _URB_BULK_OR_INTERRUPT_TRANSFER * Urb
XhciDmaBuffer * DoubleBuffer
_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_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_In_ UCHAR _In_ UCHAR _In_ ULONG Code
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION _In_ PSCATTER_GATHER_LIST SgList
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
struct _SCATTER_GATHER_LIST * PSCATTER_GATHER_LIST