75 case DsmEvent::Succeeded:
78 case DsmEvent::PortDetached:
110 return EndWith(DsmEvent::Succeeded);
126 case DsmEvent::HubStopping:
127 case DsmEvent::HubSuspending:
135 case DsmEvent::TimerFired:
138 case DsmEvent::PortDetached:
140 return EndWith(DsmEvent::PortDetached);
155 case DsmEvent::PortDetached:
158 case DsmEvent::TimerFired:
170 if (
Event != DsmEvent::PortDetached)
173 return EndWith(DsmEvent::PortDetached);
190 return EndWith(DsmEvent::Succeeded);
203 case DsmEvent::Succeeded:
207 case DsmEvent::PortDetached:
227 case DsmEvent::PdoCleanup:
231 case DsmEvent::PdoPowerUp:
239 case DsmEvent::PortDetached:
242 case DsmEvent::PortNowEnabledOnReconnect:
257 case DsmEvent::PortDisableDone:
258 case DsmEvent::PortFault:
261 case DsmEvent::PortDetached:
284 if (
Event != DsmEvent::PdoCleanup)
307 case DsmEvent::PdoPreStart:
311 case DsmEvent::HubGetDescriptor:
315 case DsmEvent::PortNowEnabled:
316 case DsmEvent::PortNowDisabled:
317 case DsmEvent::PortNowSuspended:
320 case DsmEvent::PdoPowerDownFinal:
321 case DsmEvent::PdoInstallMsOsExt:
322 case DsmEvent::PdoPowerDown:
326 case DsmEvent::HubResumedInS0:
327 case DsmEvent::HubStarted:
331 case DsmEvent::HubSuspending:
334 case DsmEvent::HubStoppingAfterSuspend:
338 case DsmEvent::HubStopping:
353 case DsmEvent::PortDetached:
355 return EndWith(DsmEvent::PortDetached);
357 case DsmEvent::PortDisableDone:
358 case DsmEvent::PortFault:
379 case DsmEvent::HubStoppedHoldingReference:
383 case DsmEvent::NeedsReenumeration:
384 case DsmEvent::SuspendedAfterHubResume:
385 case DsmEvent::ResumedWithHub:
388 case DsmEvent::PortDetached:
389 return EndWith(DsmEvent::PortDetached);
391 case DsmEvent::HubStoppingAfterSuspend:
408 case DsmEvent::ClientCyclePort:
409 case DsmEvent::PortDisableDone:
410 case DsmEvent::PortResetTimeout:
411 case DsmEvent::PortResetAbortedForSuspend:
412 case DsmEvent::PortNowEnabled:
413 case DsmEvent::PortSuspendDone:
414 case DsmEvent::LpmSettingChanged:
415 case DsmEvent::PortFault:
416 case DsmEvent::PortNowSuspended:
419 case DsmEvent::ClientResetPipe:
420 case DsmEvent::ClientSetInterface:
421 case DsmEvent::ClientSyncResetPipe:
422 case DsmEvent::ClientResetDevice:
423 case DsmEvent::ClientSelectConfig:
424 case DsmEvent::ClientClearStall:
425 case DsmEvent::ClientUnconfigure:
429 case DsmEvent::HubGetDescriptor:
433 case DsmEvent::PdoPreStart:
437 case DsmEvent::HubResumed:
438 case DsmEvent::HubStarted:
439 case DsmEvent::HubResumedWithReset:
440 case DsmEvent::HubResumedInS0:
444 case DsmEvent::PdoPowerDownFinal:
445 case DsmEvent::PdoPowerUp:
446 case DsmEvent::PdoInstallMsOsExt:
447 case DsmEvent::PdoPowerDown:
451 case DsmEvent::HubStopping:
452 case DsmEvent::HubSuspending:
456 case DsmEvent::HubStoppingAfterSuspend:
460 case DsmEvent::ClientStreams:
SM_RESULT OnReportingUnknown(_In_ DsmEvent Event)
VOID FailHubDescriptorRequest()
SM_RESULT OnFailedDevice(_In_ DsmEvent Event)
static const State StoppedAddressed
BOOLEAN CreatePlaceholderPdo()
SM_RESULT OnFailedDeviceEvents(_In_ DsmEvent Event)
static const State RemovedPortOn
VOID ConfirmStopWhileSuspended()
static const State AwaitingPort
SM_RESULT OnFailedDeviceGone(_In_ DsmEvent Event)
SM_RESULT EndDetachedOnTimer(_In_ DsmEvent Event)
static const State ReportingUnknown
static const State FailedDevice
SM_RESULT EndAfterDetach()
static const State PortOffEvents
SM_RESULT EnterReportingUnknown()
SM_RESULT EnterReportingToPnp()
SM_RESULT OnReportingToPnp(_In_ DsmEvent Event)
static const State TimerAfterDetach
static const State FailedDeviceEvents
SM_RESULT EndOnDetach(_In_ DsmEvent Event)
SM_RESULT DisableAndDelete(_In_ DSM_THEN After)
DSM_ADD_CHILD AddChildToHub()
SM_RESULT OnFailedHubSuspended(_In_ DsmEvent Event)
VOID ReportDeviceMissing()
SM_RESULT EndWith(_In_ DsmEvent Result)
SM_RESULT FailedPortOffForHub(_In_ DsmEvent Event)
SM_RESULT ReportDuplicateWaitEnded(_In_ DsmEvent Event)
SM_RESULT CallAtPassive(_In_ DSM_THEN Then)
static const State IgnoringHub
SM_RESULT EnterFailedDeviceGone()
SM_RESULT ReportCycledWithTimer(_In_ DsmEvent Event)
VOID ReferenceDevicePower()
BOOLEAN m_FailedPoweredUp
static const State DisablingPort
VOID DereferenceDevicePower()
SM_RESULT FailedPortDisabledAgain(_In_ DsmEvent Event)
static const State ReportingToPnp
SM_RESULT ReportUnknownPdo()
VOID NotifyPortDetached()
BOOLEAN DuplicateRetriesUsedUp()
SM_RESULT ReportAddChild()
static const State HubSuspended
SM_RESULT ForwardStreams(_In_ const State *ReturnTo)
SM_RESULT EnterFailedDevice()
static const State FailedDeviceGone
SM_RESULT AtPassive(_In_ DSM_THEN Then)
SM_RESULT Delay(_In_ DSM_DELAY Kind, _In_ DSM_NEXT Next)
VOID SignalPnpPowerFailure()
SM_RESULT ReportCreatePdo()
SM_RESULT OnPortOffEvents(_In_ DsmEvent Event)
SM_RESULT EnterFailedHubSuspended()
static const State FailedHubSuspended
static const State AwaitingDelete
VOID StartDuplicateRetries()
static SM_RESULT SmTransition(_In_ const State *Target)
static SM_RESULT SmCall(_In_ const State *Start)
static SM_RESULT SmHandled()
static SM_RESULT SmUnhandled()
static const DsmEvent ReportLpmDiscards[]
static const DsmEvent MissingDiscards[]
static const DsmEvent PortOffDiscards[]
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
#define SM_STATE_TAKES_REQUESTS
#define SM_STATE_YIELDS_TO_CALLER
One state. Handler gets every event the state sees.
_In_ WDFDPC _In_ BOOLEAN Wait