Run to completion engine. The first thread to post into an idle machine drains the queue; everyone el...
SM_RESULT OnCommanding(_In_ XepEvent Event)
static const State AwaitingDisable
VOID ReportStoppedEvent()
SM_RESULT OnResettingDefaultPipe(_In_ XepEvent Event)
SM_RESULT OnDraining(_In_ XepEvent Event)
static const State Commanding
SM_RESULT OnDisabled(_In_ XepEvent Event)
SM_RESULT EnterReclaiming()
SM_RESULT LeaveTimerFor(_In_ TIMER_EXIT Exit)
SM_RESULT OnRebuildingContextAfterStop(_In_ XepEvent Event)
static const State Active
SM_RESULT AfterStoppedEvent()
static const State AwaitingClientReset
static const State RebuildingContextForReset
static const State UpdatingDequeue
static const State Fenced
SM_RESULT OnAwaitingStoppedEvent(_In_ XepEvent Event)
XhciEndpoint * Endpoint() const
VOID NotifyRingsClientReset()
VOID UpdateDequeuePointers()
static const State ClientResetCommand
SM_RESULT AfterHaltDrained()
SM_RESULT OnReclaiming(_In_ XepEvent Event)
SM_RESULT OnAwaitingHalt(_In_ XepEvent Event)
BOOLEAN StopAttemptsExhausted()
VOID StartTimer(_In_ ULONG Milliseconds)
SM_RESULT OnAwaitingStopRetry(_In_ XepEvent Event)
SM_RESULT OnRunning(_In_ XepEvent Event)
VOID ReportTimeout(_In_ XEP_TIMEOUT Timeout)
SM_RESULT OnMapping(_In_ XepEvent Event)
static const State Mapping
SM_RESULT OnAwaitingClientReset(_In_ XepEvent Event)
static const State Draining
VOID NotifyRingsReclaim()
static const State Reclaiming
@ ReclaimAfterControllerReset
SM_RESULT EnterHaltingRingFill()
SM_RESULT EnterAwaitingStopRetry()
static const State AwaitingCancelOk
SM_RESULT OnAwaitingCancelOk(_In_ XepEvent Event)
VOID ReconfigureForReset()
VOID AckControllerReset()
static const State ResettingPipe
SM_RESULT EnterUpdatingDequeue()
SM_RESULT EnterResettingPipe()
static const USHORT SmTimerEventId
static const State StoppingPipe
VOID NotifyRingsReclaimOnCancel()
SM_RESULT EnterLeavingTimer()
Runs the timer exit; the engine already stopped the timer, so it cannot fire after this.
SM_RESULT AfterStopDrained()
SM_RESULT RunTimerExit(_In_ TIMER_EXIT Exit)
VOID CompleteResetRequestIfAllowed()
SM_RESULT SuspendRingFillFor(_In_ MAPPING_STOP_REASON Reason)
VOID CompleteResetRequest()
SM_RESULT OnActive(_In_ XepEvent Event)
SM_RESULT EnterAwaitingStoppedEvent()
static const State ResetWhileMapping
RECLAIM_REASON m_AfterReclaim
BOOLEAN OnPrimaryInterrupterOnly()
SM_RESULT OnHaltingRingFill(_In_ XepEvent Event)
SM_RESULT EnterDraining()
static const State LeavingTimer
BOOLEAN CanResetAfterHalt()
static const State AwaitingStoppedEvent
SM_RESULT EnterRebuildingContextAfterStop()
static const State RebuildingContextAfterStop
SM_RESULT OnUpdatingDequeue(_In_ XepEvent Event)
VOID RequestControllerReset()
SM_RESULT EnterAwaitingCancelOk()
SM_RESULT OnParked(_In_ XepEvent Event)
static const State ResettingDefaultPipe
SM_RESULT OnClientResetCommand(_In_ XepEvent Event)
BOOLEAN IgnoresStopContextError()
SM_RESULT EnterResettingDefaultPipe()
static const State AwaitingHalt
static const State Removed
VOID NotifyRingsStoppedEvent()
SM_RESULT AfterStopCommand()
MAPPING_STOP_REASON m_AfterMapping
static const State Disabled
SM_RESULT EnterRebuildingContextForReset()
SM_RESULT OnStoppingPipe(_In_ XepEvent Event)
static const State Parked
static const State HaltingRingFill
BOOLEAN ReclaimIgnoresCancel() const
XhciEndpoint * m_Endpoint
static const State Running
SM_RESULT OnResettingPipe(_In_ XepEvent Event)
static const BOOLEAN SmCompletionsFirst
SM_RESULT OnAwaitingControllerReset(_In_ XepEvent Event)
BOOLEAN ShouldReconfigureForReset()
static const State AwaitingRecovery
static const SM_EVENT_INFO EventInfo[]
friend class XhciEndpointProbe
BOOLEAN DelaysFirstStop()
VOID DereferenceEndpoint()
SM_RESULT DrainFor(_In_ BOOLEAN AfterHalt)
static const State AwaitingControllerReset
BOOLEAN DoorbellRungSinceFill()
SM_RESULT RetryStopAfter(_In_ ULONG Milliseconds)
SM_RESULT EnterStoppingPipe()
static const State AwaitingStopRetry
VOID ReconfigureAfterStop()
VOID RestartStreamQueues()
BOOLEAN IsControlEndpoint()
SM_RESULT ReclaimFor(_In_ RECLAIM_REASON Reason)
BOOLEAN NeedsContextRebuildAfterStop()
VOID NotifyRingsDrainEvents()
SM_RESULT OnRebuildingContextForReset(_In_ XepEvent Event)
SM_RESULT EnterAwaitingHalt()
SM_RESULT EnterAwaitingControllerReset()
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
@ ControllerResetStarting
@ XepTimeoutDrainAfterStop
@ XepTimeoutDrainAfterHalt
enum _XEP_TIMEOUT XEP_TIMEOUT
_In_ UCXHUB_DEVICE_CONTEXT _In_ UCXENDPOINT Endpoint
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
One state. Handler gets every event the state sees.