32 case DsmEvent::HubResumed:
36 case DsmEvent::HubResumedWithReset:
40 case DsmEvent::HubResumedInS0:
42 return EndWith(DsmEvent::SuspendedAfterHubResume);
44 case DsmEvent::PortNowDisabled:
45 case DsmEvent::PortNowEnabledOnReconnect:
48 case DsmEvent::PortNowSuspended:
51 case DsmEvent::PortNowEnabled:
54 case DsmEvent::PdoPowerDown:
69 case DsmEvent::HubResumed:
70 case DsmEvent::HubResumedWithReset:
74 case DsmEvent::HubResumedInS0:
76 return EndWith(DsmEvent::NeedsReenumeration);
78 case DsmEvent::PortNowEnabled:
79 case DsmEvent::PortNowDisabled:
80 case DsmEvent::PortNowSuspended:
81 case DsmEvent::PortNowEnabledOnReconnect:
96 case DsmEvent::HubResumed:
97 case DsmEvent::HubResumedWithReset:
99 return EndWith(DsmEvent::NeedsReenumeration);
101 case DsmEvent::PortDetached:
102 return EndWith(DsmEvent::PortDetached);
115 case DsmEvent::HubResumed:
120 return EndWith(DsmEvent::SuspendedAfterHubResume);
122 case DsmEvent::PortResumeDone:
126 case DsmEvent::PortDetached:
127 return EndWith(DsmEvent::PortDetached);
129 case DsmEvent::HubResumedWithReset:
144 case DsmEvent::HubResumed:
148 case DsmEvent::PortDetached:
149 return EndWith(DsmEvent::PortDetached);
151 case DsmEvent::HubResumedWithReset:
153 return EndWith(DsmEvent::NeedsReenumeration);
164 return EndWith(DsmEvent::NeedsReenumeration);
166 return EndWith(DsmEvent::ResumedWithHub);
176 case DsmEvent::PortNowDisabled:
177 case DsmEvent::PortNowEnabledOnReconnect:
178 return EndWith(DsmEvent::NeedsReenumeration);
180 case DsmEvent::PortNowEnabled:
183 case DsmEvent::PortNowSuspended:
184 return EndWith(DsmEvent::SuspendedAfterHubResume);
186 case DsmEvent::PortDetached:
187 return EndWith(DsmEvent::PortDetached);
189 case DsmEvent::HubSuspending:
192 case DsmEvent::HubStopping:
207 case DsmEvent::PortNowEnabled:
208 case DsmEvent::PortNowDisabled:
209 case DsmEvent::PortNowEnabledOnReconnect:
210 return EndWith(DsmEvent::NeedsReenumeration);
212 case DsmEvent::PortNowSuspended:
215 case DsmEvent::HubSuspending:
218 case DsmEvent::HubStopping:
221 case DsmEvent::PortDetached:
222 return EndWith(DsmEvent::PortDetached);
236 case DsmEvent::PortNowSuspended:
240 case DsmEvent::PortNowDisabled:
244 case DsmEvent::PortNowEnabled:
245 case DsmEvent::PortNowEnabledOnReconnect:
248 case DsmEvent::PortDetached:
250 return EndWith(DsmEvent::PortDetached);
263 case DsmEvent::PortSuspendDone:
267 case DsmEvent::PortDetached:
268 return EndWith(DsmEvent::PortDetached);
270 case DsmEvent::PortFault:
286 case DsmEvent::PortNowEnabled:
287 case DsmEvent::PortNowEnabledOnReconnect:
290 case DsmEvent::PortDetached:
291 return EndWith(DsmEvent::PortDetached);
293 case DsmEvent::PortNowSuspended:
294 case DsmEvent::PortNowDisabled:
295 return EndWith(DsmEvent::HubStoppedHoldingReference);
308 case DsmEvent::PortDetached:
309 return EndWith(DsmEvent::PortDetached);
311 case DsmEvent::PortFault:
312 case DsmEvent::PortDisableDone:
313 return EndWith(DsmEvent::HubStoppedHoldingReference);
327 case DsmEvent::PortResumeDone:
328 case DsmEvent::PortNowEnabledOnReconnect:
329 case DsmEvent::PortResumeTimeout:
330 case DsmEvent::PortFault:
331 case DsmEvent::PortNowDisabled:
332 return EndWith(DsmEvent::NeedsReenumeration);
334 case DsmEvent::PortDetached:
335 return EndWith(DsmEvent::PortDetached);
337 case DsmEvent::HubStopping:
340 case DsmEvent::HubSuspending:
354 case DsmEvent::PortResumeDone:
357 case DsmEvent::PortNowEnabledOnReconnect:
358 case DsmEvent::PortResumeTimeout:
359 case DsmEvent::PortNowDisabled:
360 case DsmEvent::PortFault:
361 return EndWith(DsmEvent::HubStoppedHoldingReference);
363 case DsmEvent::PortDetached:
364 return EndWith(DsmEvent::PortDetached);
377 case DsmEvent::PortResumeDone:
378 case DsmEvent::PortNowEnabledOnReconnect:
381 case DsmEvent::PortFault:
382 case DsmEvent::PortNowDisabled:
383 case DsmEvent::PortResumeTimeout:
387 case DsmEvent::PortDetached:
388 return EndWith(DsmEvent::PortDetached);
SM_RESULT HubResumeWithPortSuspended(_In_ DsmEvent Event)
SM_RESULT HubPortResumedForReset(_In_ DsmEvent Event)
static const State AwaitingPort
SM_RESULT HubResumeEndedForSuspend(_In_ DsmEvent Event)
static const State ResumingPort
SM_RESULT HubPortSyncedForReset(_In_ DsmEvent Event)
SM_RESULT HubPortSyncedForStop(_In_ DsmEvent Event)
BOOLEAN ResetOnResumeFromSx()
static const State HubSuspendedPortOff
static const State SuspendingPort
SM_RESULT HubResumeEndedForStop(_In_ DsmEvent Event)
SM_RESULT EndWith(_In_ DsmEvent Result)
SM_RESULT HubResumeWithPortEnabled(_In_ DsmEvent Event)
SM_RESULT HubPortSuspendedAgain(_In_ DsmEvent Event)
VOID ReferenceDevicePower()
SM_RESULT HubEndResumedOrReenumerate()
static const State DisablingPort
SM_RESULT HubPortSyncedForSuspend(_In_ DsmEvent Event)
VOID DereferenceDevicePower()
SM_RESULT HubPortOffForStop(_In_ DsmEvent Event)
SM_RESULT HubResumeForReenumeration(_In_ DsmEvent Event)
SM_RESULT OnHubSuspended(_In_ DsmEvent Event)
static const State HubSuspended
SM_RESULT HubPortSynced(_In_ DsmEvent Event)
SM_RESULT OnHubSuspendedPortOff(_In_ DsmEvent Event)
static SM_RESULT SmTransition(_In_ const State *Target)
static SM_RESULT SmUnhandled()
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
#define SM_STATE_YIELDS_TO_CALLER
One state. Handler gets every event the state sees.
_In_ WDFDPC _In_ BOOLEAN Wait