39 case DsmEvent::PortResetDone:
41 return EndWith(DsmEvent::Failed);
45 case DsmEvent::PortResetAbortedForSuspend:
48 case DsmEvent::HubStopping:
49 case DsmEvent::HubSuspending:
53 case DsmEvent::PortResetTimeout:
55 return EndWith(DsmEvent::Failed);
57 case DsmEvent::PortFault:
58 return EndWith(DsmEvent::Failed);
60 case DsmEvent::PortDetached:
61 return EndWith(DsmEvent::PortDetached);
72 if (
Event == DsmEvent::PortDisableDone)
82 return EndWith(DsmEvent::Failed);
87 return EndWith(DsmEvent::Failed);
99 case DsmEvent::ControllerIoctlDone:
103 case DsmEvent::ControllerIoctlFailed:
115 if (
Event == DsmEvent::TimerFired)
128 case DsmEvent::PortDetached:
134 case DsmEvent::HubStopping:
135 case DsmEvent::HubSuspending:
151 if (
Event != DsmEvent::TimerFired)
163 case DsmEvent::PortDetached:
166 case DsmEvent::TimerFired:
178 if ((
Event != DsmEvent::TransferDone) && (
Event != DsmEvent::TransferFailed))
201 case DsmEvent::ControllerIoctlDone:
207 case DsmEvent::ControllerIoctlFailed:
221 case DsmEvent::ControllerIoctlDone:
222 return EndWith(DsmEvent::Succeeded);
224 case DsmEvent::ControllerIoctlFailed:
238 case DsmEvent::PortResetDone:
242 case DsmEvent::PortDetached:
245 case DsmEvent::PortResetTimeout:
249 case DsmEvent::HubStopping:
250 case DsmEvent::HubSuspending:
254 case DsmEvent::PortFault:
257 case DsmEvent::PortResetAbortedForSuspend:
271 case DsmEvent::PortDetached:
274 case DsmEvent::PortResetTimeout:
275 case DsmEvent::PortFault:
276 case DsmEvent::PortResetDone:
279 case DsmEvent::PortResetAbortedForSuspend:
293 case DsmEvent::PortDetached:
296 case DsmEvent::HubStopping:
297 case DsmEvent::HubSuspending:
312 case DsmEvent::PortFault:
313 case DsmEvent::PortDisableDone:
316 case DsmEvent::PortDetached:
328 if (
Event == DsmEvent::TimerFired)
340 return EndWith(DsmEvent::Failed);
345 return EndWith(DsmEvent::Failed);
363 case DsmEvent::Succeeded:
369 case DsmEvent::Failed:
372 case DsmEvent::HubStopping:
373 case DsmEvent::HubSuspending:
377 case DsmEvent::PortDetached:
391 case DsmEvent::ControllerIoctlDone:
392 return EndWith(DsmEvent::Succeeded);
394 case DsmEvent::ControllerIoctlFailed:
427 if (
Event != DsmEvent::ControllerIoctlDone)
430 return EndWith(DsmEvent::Succeeded);
439 case DsmEvent::HubStopping:
440 case DsmEvent::HubSuspending:
444 case DsmEvent::PortResetDone:
450 case DsmEvent::PortResetAbortedForSuspend:
453 case DsmEvent::PortResetTimeout:
455 return EndWith(DsmEvent::Failed);
457 case DsmEvent::PortFault:
458 return EndWith(DsmEvent::Failed);
460 case DsmEvent::PortDetached:
461 return EndWith(DsmEvent::PortDetached);
474 case DsmEvent::TimerFired:
477 case DsmEvent::HubStopping:
478 case DsmEvent::HubSuspending:
479 case DsmEvent::PortDetached:
502 case DsmEvent::ControllerIoctlFailed:
503 return EndWith(DsmEvent::Failed);
505 case DsmEvent::ControllerIoctlDone:
507 return EndWith(DsmEvent::Succeeded);
522 case DsmEvent::TimerFired:
523 return EndWith(DsmEvent::Succeeded);
525 case DsmEvent::HubStopping:
526 case DsmEvent::HubSuspending:
527 case DsmEvent::PortDetached:
SM_RESULT Zero20TimerFlushedOnDetach(_In_ DsmEvent Event)
SM_RESULT EndWithHubEvent()
BOOLEAN CreateDeviceInController()
SM_RESULT Zero20SecondResetEndedForHub(_In_ DsmEvent Event)
SM_RESULT Zero20ResetNotified(_In_ DsmEvent Event)
static const State AwaitingPort
SM_RESULT StartSuperSpeedReset()
SM_RESULT CallWait(_In_ const State *Target, _In_ DSM_NEXT Next)
SM_RESULT Zero30CreateDevice()
SM_RESULT Zero20EndpointUpdated(_In_ DsmEvent Event)
SM_RESULT Zero20FirstResetDone(_In_ DsmEvent Event)
SM_RESULT AddressDelayEnded(_In_ DsmEvent Event)
SM_RESULT EnterUpdatingDefaultEndpoint()
VOID DeleteDeviceInController()
SM_RESULT EnterSettingAddress()
SM_RESULT Zero20SecondDelayEnded(_In_ DsmEvent Event)
VOID UpdateDefaultEndpoint()
SM_RESULT Zero20TimerFlushedForHub(_In_ DsmEvent Event)
static const State TimerAfterDetach
SM_RESULT Zero20SecondResetDone(_In_ DsmEvent Event)
BOOLEAN NeedsSecondReset()
SM_RESULT DisableAndDelete(_In_ DSM_THEN After)
static const State UpdatingDefaultEndpoint
SM_RESULT Zero20FirstDelayEnded(_In_ DsmEvent Event)
SM_RESULT EndWith(_In_ DsmEvent Result)
SM_RESULT EndAfterTimer(_In_ DsmEvent Event)
SM_RESULT Zero30Enabled(_In_ DsmEvent Event)
SM_RESULT Zero20CreateDevice()
SM_RESULT Zero20FirstResetEndedForHub(_In_ DsmEvent Event)
SM_RESULT SuperSpeedDelayEnded(_In_ DsmEvent Event)
BOOLEAN CreateDefaultEndpoint()
SM_RESULT Zero20Enabled(_In_ DsmEvent Event)
static const State DisablingPort
SM_RESULT OnSettingAddress(_In_ DsmEvent Event)
VOID RequestPortWarmReset()
static const State EnablingDevice
SM_RESULT Zero20PortOffForHub(_In_ DsmEvent Event)
SM_RESULT Zero20StopDelay(_In_ DsmEvent Event)
VOID RecordResetTimeout()
SM_RESULT Zero20FirstDescriptorRead(_In_ DsmEvent Event)
static const State NotifyingReset
static const State ReadingFirstDescriptor
SM_RESULT EndOnHubOrDetach(_In_ DsmEvent Event)
static const State ResettingPort
SM_RESULT SuperSpeedResetDone(_In_ DsmEvent Event)
static const State SettingAddress
BOOLEAN WaitNeededAfterAddress()
SM_RESULT EndOnResetForHub(_In_ DsmEvent Event)
SM_RESULT SuperSpeedResetNotified(_In_ DsmEvent Event)
SM_RESULT OnShared(_In_ DsmEvent Event)
SM_RESULT Zero20SecondResetAwaitHub(_In_ DsmEvent Event)
SM_RESULT AtPassive(_In_ DSM_THEN Then)
SM_RESULT Delay(_In_ DSM_DELAY Kind, _In_ DSM_NEXT Next)
DSM_RESET_KIND ResetKindNeeded()
SM_RESULT EnterResettingSuperSpeed()
BOOLEAN FirstDescriptorValid()
VOID RecordDeviceVersion()
SM_RESULT DeleteThen(_In_ DSM_THEN After)
SM_RESULT OnResettingSuperSpeed(_In_ DsmEvent Event)
static const State ResettingSuperSpeed
static SM_RESULT SmTransition(_In_ const State *Target)
static SM_RESULT SmHandled()
static SM_RESULT SmUnhandled()
@ DsmDelayPostResetSuperSpeed
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
#define SM_STATE_YIELDS_TO_CALLER
#define SM_STATE_CRITICAL_ONLY
One state. Handler gets every event the state sees.
_In_ WDFDPC _In_ BOOLEAN Wait