73 if (
Event != DsmEvent::ControllerIoctlDone)
107 if (
Event != DsmEvent::ControllerIoctlDone)
133 if (
Event != DsmEvent::ControllerIoctlDone)
156 case DsmEvent::ClientUnconfigure:
157 case DsmEvent::ClientClearStall:
158 case DsmEvent::ClientSyncResetPipe:
159 case DsmEvent::ClientResetPipe:
160 case DsmEvent::ClientSetInterface:
161 case DsmEvent::ClientSelectConfig:
165 case DsmEvent::HubGetDescriptor:
169 case DsmEvent::NoPingResponse:
170 case DsmEvent::LpmSettingChanged:
173 case DsmEvent::DeviceTextQuery:
177 case DsmEvent::PdoPreStart:
181 case DsmEvent::ClientResetDevice:
184 case DsmEvent::PortDetached:
191 case DsmEvent::ClientStreams:
222 case DsmEvent::ClientSetInterface:
223 case DsmEvent::ClientSelectConfig:
224 case DsmEvent::ClientResetPipe:
225 case DsmEvent::ClientSyncResetPipe:
226 case DsmEvent::ClientUnconfigure:
227 case DsmEvent::ClientClearStall:
231 case DsmEvent::NoPingResponse:
232 case DsmEvent::LpmSettingChanged:
235 case DsmEvent::HubGetDescriptor:
239 case DsmEvent::DeviceTextQuery:
243 case DsmEvent::ClientResetDevice:
246 case DsmEvent::PortReattached:
249 case DsmEvent::ClientStreams:
269 if (
Event != DsmEvent::PortReattached)
281 case DsmEvent::ClientResetPipe:
282 case DsmEvent::ClientClearStall:
283 case DsmEvent::ClientSyncResetPipe:
287 case DsmEvent::LpmSettingChanged:
288 case DsmEvent::NoPingResponse:
291 case DsmEvent::HubGetDescriptor:
295 case DsmEvent::HubResumed:
296 case DsmEvent::HubResumedWithReset:
297 case DsmEvent::HubResumedInS0:
301 case DsmEvent::PdoInstallMsOsExt:
302 case DsmEvent::PdoPowerDown:
303 case DsmEvent::PdoPowerUp:
307 case DsmEvent::HubSuspending:
static const State BootDeviceResetPending
VOID FailHubDescriptorRequest()
static const State BootDeviceAwaitingReset
VOID DisableEndpointsAndNotify()
SM_RESULT BootDeviceDisabledOnDetach(_In_ DsmEvent Event)
SM_RESULT OnBootDeviceDetached(_In_ DsmEvent Event)
SM_RESULT BootDeviceNotifyDetached()
SM_RESULT EnterBootDeviceEvents()
SM_RESULT BootDeviceDisabledOnFailure(_In_ DsmEvent Event)
SM_RESULT OnBootDeviceEvents(_In_ DsmEvent Event)
SM_RESULT EnterBootDeviceDetachedContextGone()
VOID NotifyDisconnected()
static const State BootDeviceEvents
SM_RESULT PurgedOnDetach(_In_ DsmEvent Event)
SM_RESULT OnBootDeviceAwaitingReset(_In_ DsmEvent Event)
SM_RESULT PurgeOnDetach()
VOID ReferenceDevicePower()
SM_RESULT EnterBootDeviceDetached()
VOID DisableEndpointsPowerLost()
static const State BootDeviceDetached
VOID DereferenceDevicePower()
SM_RESULT BootDeviceFailed()
VOID NotifyPortDetached()
SM_RESULT BootDeviceDisableOnDetach()
static const State RequestingCriticalPassive
SM_RESULT ForwardStreams(_In_ const State *ReturnTo)
SM_RESULT ReenumForBootClient(_In_ BOOLEAN AfterReattach)
VOID DisableAllEndpoints()
SM_RESULT BootDeviceDetachDuringReset(_In_ BOOLEAN ContextGone)
SM_RESULT DetachConfigured()
static const State RequestingCritical
SM_RESULT OnBootDeviceResetPending(_In_ DsmEvent Event)
static const State BootDeviceDetachedContextGone
SM_RESULT EnterBootDeviceResetPending()
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 BootDiscards[]
_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.
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request