static const State Inactive
static const State ResettingPipe
VOID AckControllerReset()
VOID FinishStreamsOpenRequest(_In_ BOOLEAN ForceFailure)
SM_RESULT OnOperation(_In_ EpEvent Event)
static const State AwaitingDestroy
SM_RESULT OnBusy(_In_ EpEvent Event)
static const State Purging
VOID FinishStreamsCloseRequest()
BOOLEAN DeviceAllowsStart()
SM_RESULT OnAborting(_In_ EpEvent Event)
SM_RESULT EnterDisablingStreams()
SM_RESULT OnAwaitingAbortUrb(_In_ EpEvent Event)
SM_RESULT EnterAborting()
VOID ForwardResetRequest()
SM_RESULT StartPurge(_In_ PURGE_FOLLOW_UP FollowUp)
static const State EnablingStreams
SM_RESULT BeginOperation(_In_ const State *Target, _In_ const State *ReturnTo)
VOID ParkStreamsDisableRequest()
BOOLEAN m_PauseAfterPurge
BOOLEAN DeviceDisconnected()
SM_RESULT OnEnabled(_In_ EpEvent Event)
const State * m_HeldOperation
SM_RESULT OnOperationUnwinding(_In_ EpEvent Event)
Reset under an outstanding operation: finish it, then purge.
SM_RESULT OnResettingPipe(_In_ EpEvent Event)
SM_RESULT OnEnablingStreams(_In_ EpEvent Event)
VOID ForwardStreamsDisableRequest()
VOID FinishEndpointResetRequest()
VOID RejectStreamsEnableRequest()
static const State Enabled
@ PurgeFollowUpHubOperation
SM_RESULT Retire()
An endpoint the client still has a handle to stays around as stale.
static const State OperationUnwinding
BOOLEAN DeviceDeprogrammed()
UcxEndpoint * Endpoint() const
PURGE_FOLLOW_UP m_AfterPurge
SM_RESULT EnterOperationHeld()
static const State Retired
VOID DereferenceEndpoint()
VOID ForwardStreamsEnableRequest()
SM_RESULT OnCreated(_In_ EpEvent Event)
VOID DeleteStaleEndpoint()
static const State AwaitingAbortUrb
SM_RESULT OnOperationHeld(_In_ EpEvent Event)
BOOLEAN ClientHoldsHandle()
VOID CompleteHubOperation()
static const State Aborting
SM_RESULT OnPurging(_In_ EpEvent Event)
SM_RESULT OnDisabled(_In_ EpEvent Event)
SM_RESULT OnDisablingStreams(_In_ EpEvent Event)
static const State DisablingStreams
SM_RESULT OnInactive(_In_ EpEvent Event)
static const State OperationHeld
static const State Created
SM_RESULT EnterEnablingStreams()
SM_RESULT PauseForControllerReset()
Pause before the ack; nothing may touch the machine after it.
SM_RESULT OnRetired(_In_ EpEvent Event)
SM_RESULT OnStale(_In_ EpEvent Event)
static const State Operation
SM_RESULT EnterResettingPipe()
static const State Disabled
static const SM_EVENT_INFO EventInfo[]
BOOLEAN SmAccepts(_In_ EpEvent Event)
Abort URB is only taken while running; the caller fails the URB on FALSE.
Run to completion engine. The first thread to post into an idle machine drains the queue; everyone el...
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
@ ControllerResetStarting
_In_ UCXHUB_DEVICE_CONTEXT _In_ UCXENDPOINT Endpoint
One state. Handler gets every event the state sees.