141#define DSM_KIND_USB10 0x00000001
142#define DSM_KIND_USB1X 0x00000002
143#define DSM_KIND_USB20 0x00000004
144#define DSM_KIND_USB2X 0x00000008
145#define DSM_KIND_USB3X 0x00000010
146#define DSM_KIND_ANY_VERSION 0x000000FF
147#define DSM_KIND_HIGH_SPEED 0x00000100
148#define DSM_KIND_FULL_SPEED 0x00000200
149#define DSM_KIND_LOW_SPEED 0x00000400
150#define DSM_KIND_SUPER_SPEED 0x00000800
151#define DSM_KIND_ANY_SPEED 0x0000FF00
152#define DSM_KIND_PORT20 0x00010000
153#define DSM_KIND_PORT30 0x00020000
154#define DSM_KIND_ANY_PORT 0x00FF0000
static _Out_opt_ PULONGLONG Start
SM_RESULT EnterSettingPdCharging()
SM_RESULT InterfaceOldRestored(_In_ DsmEvent Event)
SM_RESULT RemovalDropPowerAndPark()
BOOLEAN ArmForWakeWanted()
static const State BootDeviceResetPending
SM_RESULT OnSuspendingConfigured(_In_ DsmEvent Event)
static const State AtAddressZero
static const State AwaitingRemove
SM_RESULT LpmProgrammedBeforeRaise(_In_ DsmEvent Event)
SM_RESULT MsOsContainerRead(_In_ DsmEvent Event)
SM_RESULT Zero20TimerFlushedOnDetach(_In_ DsmEvent Event)
BOOLEAN m_EndpointsConfigured
SM_RESULT EndWithHubEvent()
VOID ReleaseAddressZero()
SM_RESULT ConfiguredResetBootDevice()
SM_RESULT ReconfiguredAfterResume(_In_ DsmEvent Event)
static const State AddressingInEnum
SM_RESULT SelectConfigDone(_In_ DsmEvent Event)
SM_RESULT SelectConfigValidate()
SM_RESULT ConfiguredNotStartedHubStop(_In_ DsmEvent Event)
SM_RESULT ReenumPdCharging()
static const State AwaitingMsOsInstall
BOOLEAN ExitLatencyMayDrop()
BOOLEAN CreateDeviceInController()
VOID UpdateDeviceInController()
SM_RESULT Zero20SecondResetEndedForHub(_In_ DsmEvent Event)
SM_RESULT EnumRetryOrFail()
DSM_FEATURE_CHANGE U2Change()
SM_RESULT RemovalLeaveHub()
SM_RESULT ConfigureProgrammed(_In_ DsmEvent Event)
SM_RESULT OnReportingUnknown(_In_ DsmEvent Event)
SM_RESULT StoppedDropPower()
SM_RESULT EnterLinkPowerAgain()
SM_RESULT SuspendedPortDownForHub(_In_ DsmEvent Event)
static const State ReenumeratingForPower
SM_RESULT EnterSuspendingConfigured()
SM_RESULT EndpointsProgrammed(_In_ DsmEvent Event)
SM_RESULT EnterProgrammingEndpoints()
VOID DeleteDefaultEndpoint()
SM_RESULT ReenumDoneForHubResumeConfigured(_In_ DsmEvent Event)
SM_RESULT GoStoppedEnabled()
VOID FailHubDescriptorRequest()
SM_RESULT AltBosValidate()
SM_RESULT HubResumeWithPortSuspended(_In_ DsmEvent Event)
SM_RESULT OnFailedDevice(_In_ DsmEvent Event)
SM_RESULT UnconfiguredDisabledForRestart(_In_ DsmEvent Event)
BOOLEAN QueryRegistryValues()
static const State StoppedAddressed
static const State StoppedEnumeratedHubSuspended
SM_RESULT Zero20ResetNotified(_In_ DsmEvent Event)
SM_RESULT InterfaceSet(_In_ DsmEvent Event)
SM_RESULT StoppedDisabledForHub(_In_ DsmEvent Event)
VOID DisablePendingEndpoints()
SM_RESULT MsOsInstallDone()
SM_RESULT MsOsFreeAndDone()
BOOLEAN AltEnumNeededOnReenum()
static const USHORT SmTimerEventId
BOOLEAN CreatePlaceholderPdo()
BOOLEAN BosQuerySkipped()
SM_RESULT DescriptorsAltEnumSent(_In_ DsmEvent Event)
SM_RESULT Again20SecondResetNotified(_In_ DsmEvent Event)
VOID PurgeIoForHibernation()
BOOLEAN DeviceProgrammingLost()
static const State Reenumerating
SM_RESULT MsOsMarkUnsupported()
SM_RESULT OnFailedDeviceEvents(_In_ DsmEvent Event)
SM_RESULT ReenumTreePurgedUnconfigured(_In_ DsmEvent Event)
VOID ReadFullConfigDescriptor()
BOOLEAN MsOsQueryWanted()
SM_RESULT EnterPassiveStep()
SM_RESULT RemovalDeleteAndFinish()
static const State Requesting
SM_RESULT ConfiguredPurgedWhileSuspending(_In_ DsmEvent Event)
static const State RemovedPortOn
SM_RESULT ConfiguredIoStarted(_In_ DsmEvent Event)
SM_RESULT StoppedPortOffAfterDisable(_In_ DsmEvent Event)
SM_RESULT ReenumPurgedHoldingAddressZero(_In_ DsmEvent Event)
SM_RESULT ReconfiguredForClient(_In_ DsmEvent Event)
static const State BootDeviceAwaitingReset
SM_RESULT EnterDisablingSuperSpeed()
SM_RESULT SuspendedPortResumed(_In_ DsmEvent Event)
SM_RESULT ReenumRetryDelayEndedHoldingAddressZero(_In_ DsmEvent Event)
SM_RESULT U2TimeoutSet(_In_ DsmEvent Event)
SM_RESULT ReenumPortOffForHubDeviceEnabled(_In_ DsmEvent Event)
SM_RESULT ReenumAltEnumSent(_In_ DsmEvent Event)
SM_RESULT HubPortResumedForReset(_In_ DsmEvent Event)
VOID ConfirmStopWhileSuspended()
static const State SuspendedUnconfigured
static const State AwaitingPort
SM_RESULT RemovalAckHubStop()
BOOLEAN MsOsDescriptorValid()
SM_RESULT ReenumForHubResume(_In_ BOOLEAN Configured)
SM_RESULT OnFailedDeviceGone(_In_ DsmEvent Event)
static const State RemovedPortOff
SM_RESULT ConfiguredFreeForClient()
static const State SuspendingUnconfigured
VOID ResetEndpointAndTransfers()
SM_RESULT OnProgrammingEndpoints(_In_ DsmEvent Event)
SM_RESULT ReenumDisabledThenPark(_In_ DsmEvent Event)
SM_RESULT OnUpdatingLinkPower(_In_ DsmEvent Event)
SM_RESULT OnAwaitingRemove(_In_ DsmEvent Event)
SM_RESULT RemovalDeleteForgetAndPark()
SM_RESULT HubResumeEndedForSuspend(_In_ DsmEvent Event)
SM_RESULT InterfaceProgrammed(_In_ DsmEvent Event)
SM_RESULT StartSuperSpeedReset()
VOID ReadBillboardString()
BOOLEAN m_ReenumForceReset
SM_RESULT UnconfiguredDisabledForStop(_In_ DsmEvent Event)
SM_RESULT MsOsNoContainerId()
SM_RESULT EndDetachedOnTimer(_In_ DsmEvent Event)
static const State Starting
SM_RESULT SuspendedResumedByPort()
BOOLEAN DeviceArmedForWake()
SM_RESULT CallWait(_In_ const State *Target, _In_ DSM_NEXT Next)
SM_RESULT ConfiguredResumedWithHub(_In_ DsmEvent Event)
SM_RESULT Link20Updated(_In_ DsmEvent Event)
SM_RESULT ConfigureDeleteOld()
SM_RESULT MsOsRead(_In_ DsmEvent Event)
SM_RESULT EnterUpdatingDevice()
SM_RESULT OnSuspendedConfigured(_In_ DsmEvent Event)
VOID DisableDeviceInController()
SM_RESULT MsOsWriteProperties()
SM_RESULT Zero30CreateDevice()
BOOLEAN m_DetachEndsReset
VOID SendAltEnumCommand()
SM_RESULT SuspendEndedForHub(_In_ DsmEvent Event)
static const State ResumingPort
static const State OffAfterD3Cold
SM_RESULT OnStoppedHubSuspended(_In_ DsmEvent Event)
SM_RESULT LinkLatencyTolerance()
SM_RESULT ConfiguredCyclePort()
BOOLEAN IgnoreDescriptorError()
SM_RESULT ReenumCycleAfterResumeFailure()
SM_RESULT OnSuspendingUnconfigured(_In_ DsmEvent Event)
SM_RESULT BosRead(_In_ DsmEvent Event)
SM_RESULT MsOsInstallStart()
SM_RESULT SuspendedPurgedAfterWake(_In_ DsmEvent Event)
SM_RESULT SuspendedIoStartedOnWake(_In_ DsmEvent Event)
SM_RESULT AltConfigRead(_In_ DsmEvent Event)
SM_RESULT EnterSuspendingPort()
SM_RESULT OnSuspendedUnconfigured(_In_ DsmEvent Event)
SM_RESULT EnterStoppedAddressed()
VOID DisableEndpointsAndNotify()
VOID StartSuperSpeedPostResetTimer()
SM_RESULT HubPortSyncedForReset(_In_ DsmEvent Event)
SM_RESULT AltBosRead(_In_ DsmEvent Event)
SM_RESULT HubPortSyncedForStop(_In_ DsmEvent Event)
static const State ReportingUnknown
SM_RESULT Zero20EndpointUpdated(_In_ DsmEvent Event)
SM_RESULT OnReadingBos(_In_ DsmEvent Event)
SM_RESULT Zero20FirstResetDone(_In_ DsmEvent Event)
BOOLEAN ProductNameValid()
SM_RESULT OnConfiguredHubSuspended(_In_ DsmEvent Event)
SM_RESULT LpmLatencyRaised(_In_ DsmEvent Event)
SM_RESULT ReenumPdChargingSet(_In_ DsmEvent Event)
SM_RESULT(DeviceMachine::* DSM_THEN)()
static const State LinkPowerInEnum
SM_RESULT OnAwaitingAttach(_In_ DsmEvent Event)
BOOLEAN U1TimeoutChanged()
SM_RESULT ConfigureCreateEndpoints()
SM_RESULT ReenumForResume(_In_ BOOLEAN Configured)
SM_RESULT OnStoppedEnumeratedHubSuspended(_In_ DsmEvent Event)
SM_RESULT EnterReadingDescriptors()
VOID RequestPortDisable()
SM_RESULT OnRemovedPortOff(_In_ DsmEvent Event)
static const State FailedDevice
SM_RESULT ReenumFailedForHubResume(_In_ DsmEvent Event)
SM_RESULT ConfiguredNotStartedCleanup(_In_ DsmEvent Event)
BOOLEAN SupportsPdCharging()
SM_RESULT MsOsStoreVendorCode()
SM_RESULT OnParkedPortOff(_In_ DsmEvent Event)
static const State ReadingDeviceDescriptor
SM_RESULT OnStoppedAddressed(_In_ DsmEvent Event)
BOOLEAN ResetOnResumeFromSx()
SM_RESULT EndAfterDetach()
SM_RESULT OnConfigured(_In_ DsmEvent Event)
SM_RESULT ReenumTimerFlushedForHub(_In_ DsmEvent Event)
SM_RESULT EnterSettingU2Timeout()
SM_RESULT OnReadingLanguages(_In_ DsmEvent Event)
static const State DisablingEndpoints
VOID StoreMsOsVendorCode()
SM_RESULT AddressDelayEnded(_In_ DsmEvent Event)
static const State SettingPdCharging
SM_RESULT ReenumDoneForStart(_In_ DsmEvent Event)
SM_RESULT BootDeviceDisabledOnDetach(_In_ DsmEvent Event)
SM_RESULT EnumTimerFlushedOnDetach(_In_ DsmEvent Event)
SM_RESULT EnterRemainingDescriptors()
SM_RESULT EnterUpdatingDefaultEndpoint()
SM_RESULT OnBootDeviceDetached(_In_ DsmEvent Event)
SM_RESULT InterfaceStart()
static const State HubSuspendedPortOff
BOOLEAN ExtPropertiesWanted()
SM_RESULT Then(_In_ DSM_THEN Next)
SM_RESULT BootDeviceNotifyDetached()
static const State PortOffEvents
SM_RESULT SuspendedPurgedForReset(_In_ DsmEvent Event)
VOID MarkSystemWakeSource()
BOOLEAN ResetOnResumeFromS0()
SM_RESULT ConfiguredPurgedForHub(_In_ DsmEvent Event)
VOID CyclePortForClient()
SM_RESULT SuspendedPortOffForStop(_In_ DsmEvent Event)
VOID ClearResetAtResume()
static const State WaitingForController
VOID StartPostResetTimer()
SM_RESULT ClientDoneWithLastStatus()
SM_RESULT ReenumClaimEndedOnDetach(_In_ DsmEvent Event)
SM_RESULT InterfaceDeleteOld()
SM_RESULT ReenumCleanUpOldConfig()
SM_RESULT EnumPortOffAfterFailureHoldingAddressZero(_In_ DsmEvent Event)
SM_RESULT ConfiguredNotStartedHubSuspend(_In_ DsmEvent Event)
BOOLEAN EndpointsNeedDisableOnFailure()
SM_RESULT ReenumDisableForHub()
SM_RESULT EnterReenumerating()
SM_RESULT InterfaceDeleteOldAndFail()
SM_RESULT Again20FirstResetDone(_In_ DsmEvent Event)
VOID DeleteDeviceInController()
static const State ConfiguredOn
SM_RESULT EnterBootDeviceEvents()
SM_RESULT EnterSettingAddress()
SM_RESULT OnReadingProductName(_In_ DsmEvent Event)
BOOLEAN AltEnumNeededAfterBos()
BOOLEAN AltModeStringWanted()
SM_RESULT StoppedPortOffAfterHubResume(_In_ DsmEvent Event)
SM_RESULT Zero20SecondDelayEnded(_In_ DsmEvent Event)
VOID UpdateDefaultEndpoint()
VOID MarkPendingEndpointsDisabled()
SM_RESULT ReenumRetryOrFail()
BOOLEAN SelectInterfaceValid()
SM_RESULT ConfigureOldDisabled(_In_ DsmEvent Event)
SM_RESULT ReenumConfigRead(_In_ DsmEvent Event)
SM_RESULT EnterNotifyingReset()
static const State AtAddressZeroAgain
BOOLEAN SerialNumberValid()
SM_RESULT AltQueryRegistry()
SM_RESULT OnAddressingAgain(_In_ DsmEvent Event)
SM_RESULT EnterReportingUnknown()
SM_RESULT ConfiguredRestartWhileSuspended()
BOOLEAN BillboardStringWanted()
SM_RESULT ConfiguredSuspendedForHub(_In_ DsmEvent Event)
SM_RESULT RemovalPowerDownDone()
SM_RESULT Again20FirstDescriptorRead(_In_ DsmEvent Event)
static const State IoctlAfterDetach
static const State Enumerating
SM_RESULT EnterReportingToPnp()
SM_RESULT BootDeviceDisabledOnFailure(_In_ DsmEvent Event)
SM_RESULT InterfaceCreateEndpoints()
static const State ReadingConfigDescriptor
BOOLEAN ExitLatencyMustRise()
SM_RESULT UnconfiguredSuspendedForHub(_In_ DsmEvent Event)
BOOLEAN ContainerIdKnown()
static const State ParkedPortOff
SM_RESULT OnReadingDeviceDescriptor(_In_ DsmEvent Event)
VOID ReadMsOsDescriptor()
SM_RESULT Zero20TimerFlushedForHub(_In_ DsmEvent Event)
SM_RESULT DeleteDeviceThen()
SM_RESULT ReenumPurgedAfterFailure(_In_ DsmEvent Event)
SM_RESULT ReenumDisabledForHub(_In_ DsmEvent Event)
SM_RESULT LpmU1Enabled(_In_ DsmEvent Event)
BOOLEAN ConfigLongerThanRead()
VOID ReadExtendedConfig()
SM_RESULT EnterReadingConfigDescriptor()
SM_RESULT EnterReadingQualifier()
SM_RESULT SuspendIoAborted(_In_ DsmEvent Event)
static const State SuspendingConfigured
SM_RESULT OnReportingToPnp(_In_ DsmEvent Event)
SM_RESULT RemovalDeleteForget()
VOID RequestHibernationPrep()
SM_RESULT DisableForRemoval(_In_ DSM_THEN After)
static const State BootDeviceSuspended
VOID ArmPostAddressTimer()
static const State ReadingBos
static const State TimerAfterDetach
static const State RequestingYielding
static const State FailedDeviceEvents
VOID RequestPortSuspend()
SM_RESULT Zero20SecondResetDone(_In_ DsmEvent Event)
SM_RESULT OnConfiguring(_In_ DsmEvent Event)
SM_RESULT SuspendPortArmed(_In_ DsmEvent Event)
BOOLEAN NeedsSecondReset()
BOOLEAN ExtPropertiesValid()
SM_RESULT OnBootDeviceEvents(_In_ DsmEvent Event)
SM_RESULT EnumRetryDelayEnded(_In_ DsmEvent Event)
SM_RESULT EnterEnablingDevice()
SM_RESULT EnterDetachedMissing()
SM_RESULT EndOnDetach(_In_ DsmEvent Event)
VOID StartLongPostResetTimer()
SM_RESULT DisableAndDelete(_In_ DSM_THEN After)
DSM_ADD_CHILD AddChildToHub()
SM_RESULT StoppedResumeEndedForSuspend(_In_ DsmEvent Event)
SM_RESULT SuspendedIoStarted(_In_ DsmEvent Event)
VOID ReadFirstDescriptor()
static const State SuspendingPort
VOID StartDriverWaitTimer()
VOID RequestSuperSpeedDisable()
SM_RESULT OnFailedHubSuspended(_In_ DsmEvent Event)
SM_RESULT EnterRequesting()
BOOLEAN ContainerIdHeaderValid()
SM_RESULT UnconfiguredByClient(_In_ DsmEvent Event)
BOOLEAN KindWithin(_In_ ULONG Allowed)
A device with no version or speed known yet passes for any version or speed.
SM_RESULT OnOffAfterD3Cold(_In_ DsmEvent Event)
SM_RESULT StoppedAckHubStop()
SM_RESULT HubResumeEndedForStop(_In_ DsmEvent Event)
SM_RESULT EnterWithMsOsInstall()
SM_RESULT MsOsContainerHeaderRead(_In_ DsmEvent Event)
VOID ComputeExitLatency()
SM_RESULT LinkSelSet(_In_ DsmEvent Event)
SM_RESULT EnumPortOffAfterDelete()
SM_RESULT Again20SecondDelayEnded(_In_ DsmEvent Event)
static const State SettingU2Timeout
static const State CancelingClaimForHub
static const State AwaitingAttach
SM_RESULT ReenumForPreStart()
VOID ClearReprogramNeeded()
static const State StoppedReady
VOID SetNullConfiguration()
static const State ProgrammingEndpoints
SM_RESULT EnumClaimEndedOnDetach(_In_ DsmEvent Event)
SM_RESULT DeviceTextRead(_In_ DsmEvent Event)
SM_RESULT StoppedPortResumed(_In_ DsmEvent Event)
DSM_FEATURE_CHANGE U1Change()
SM_RESULT EnterAtAddressZeroAgain()
SM_RESULT BosFeaturesSent(_In_ DsmEvent Event)
SM_RESULT RemovalAckAndPark()
VOID DisableNewInterfaceEndpoints()
static const State UpdatingDefaultEndpoint
SM_RESULT EnterBootDeviceDetachedContextGone()
SM_RESULT AltConfigHeaderRead(_In_ DsmEvent Event)
static const BOOLEAN SmCompletionsFirst
static const State ConfiguredNotStarted
SM_RESULT ReenumPortOffAfterFailure(_In_ DsmEvent Event)
SM_RESULT LpmFinalProgram()
VOID DeleteOldInterfaceEndpoints()
SM_RESULT OnReadingDeviceText(_In_ DsmEvent Event)
BOOLEAN EnumRetriesUsedUp()
BOOLEAN PipeIsIsochronous()
static const State ClaimingAddressZeroAgain
VOID ReportDeviceMissing()
SM_RESULT Again20FirstDelayEnded(_In_ DsmEvent Event)
VOID MarkMsOsInstallHandled()
SM_RESULT ReenumStopRetryForHub()
BOOLEAN DisableLinkStatesForLatency()
SM_RESULT SuspendedPortOffForReset(_In_ DsmEvent Event)
SM_RESULT OnParkedForHubAgain(_In_ DsmEvent Event)
VOID NotifyDisconnected()
VOID ReadConfigDescriptorHeader()
static const State UpdatingLinkPower
SM_RESULT Zero20FirstDelayEnded(_In_ DsmEvent Event)
SM_RESULT EndWith(_In_ DsmEvent Result)
SM_RESULT EnterReadingDeviceText()
static const State SettingInterface
SM_RESULT ReenumDoneForClientUnconfigured(_In_ DsmEvent Event)
VOID SetPdChargingPolicy()
SM_RESULT EndAfterTimer(_In_ DsmEvent Event)
static const State ParkedForHubInEnum
SM_RESULT ReenumForBootResume()
SM_RESULT FailedPortOffForHub(_In_ DsmEvent Event)
SM_RESULT EnterReadingFirstDescriptor()
SM_RESULT CancelTransferAndEnd(_In_ DsmEvent Event)
SM_RESULT HubResumeWithPortEnabled(_In_ DsmEvent Event)
SM_RESULT Zero30Enabled(_In_ DsmEvent Event)
SM_RESULT EnterAddressing()
static const State DetachedReported
SM_RESULT ReenumDoneForBootDevice(_In_ DsmEvent Event)
SM_RESULT Zero20CreateDevice()
SM_RESULT OnAwaitingPowerUpAfterWake(_In_ DsmEvent Event)
SM_RESULT ReconfiguredBootDevice(_In_ DsmEvent Event)
SM_RESULT Zero20FirstResetEndedForHub(_In_ DsmEvent Event)
BOOLEAN MsOs20ValuesWanted()
SM_RESULT SuperSpeedDelayEnded(_In_ DsmEvent Event)
static const State SuspendedConfigured
SM_RESULT EnumPortOffForHub(_In_ DsmEvent Event)
SM_RESULT ReenumPortOffForHubDeviceDisabled(_In_ DsmEvent Event)
SM_RESULT HubPortSuspendedAgain(_In_ DsmEvent Event)
SM_RESULT OnPortOnEvents(_In_ DsmEvent Event)
SM_RESULT ToAwaitingDetachOrRemove(_In_ BOOLEAN Configured)
BOOLEAN SerialNumberIndexZero()
static const State SuspendedHubSuspended
SM_RESULT MsOsSerialRead(_In_ DsmEvent Event)
SM_RESULT ReenumDisabledThenReport(_In_ DsmEvent Event)
SM_RESULT ReconfiguredAfterHubResume(_In_ DsmEvent Event)
BOOLEAN CreateDefaultEndpoint()
static const State DisablingDevice
BOOLEAN SetExtPropertiesSemaphore()
SM_RESULT SuspendedNeedsReset()
SM_RESULT ReenumDisabledThenSignalAndCycle(_In_ DsmEvent Event)
static const State BootDeviceSuspending
SM_RESULT Zero20Enabled(_In_ DsmEvent Event)
SM_RESULT BosAltModeRead(_In_ DsmEvent Event)
SM_RESULT MsOsContainerId()
SM_RESULT EnterWithPortOff()
static const State BootDeviceEvents
SM_RESULT RemovalDropPowerForHubStop()
BOOLEAN MsOsExtendedConfigSupported()
SM_RESULT ReportDuplicateWaitEnded(_In_ DsmEvent Event)
SM_RESULT ReenumTreePurgedConfigured(_In_ DsmEvent Event)
SM_RESULT PurgedOnDetach(_In_ DsmEvent Event)
SM_RESULT OnBootDeviceAwaitingReset(_In_ DsmEvent Event)
SM_RESULT EnumStopRetryOnDetach()
SM_RESULT OnReenumerating(_In_ DsmEvent Event)
SM_RESULT RemovalHubStopped()
SM_RESULT CallStep(_In_ DSM_THEN Then)
SM_RESULT EnterClaimingAddressZero()
SM_RESULT OnCancelingClaimForHub(_In_ DsmEvent Event)
SM_RESULT QualifierRead(_In_ DsmEvent Event)
BOOLEAN ProductStringIndexZero()
static const State ReadingMsOs
static const State AwaitingDetachOrRemove
BOOLEAN ReferenceHubPower()
SM_RESULT OnReadingQualifier(_In_ DsmEvent Event)
SM_RESULT PurgeOnDetach()
SM_RESULT ReenumTimerFlushedOnDetach(_In_ DsmEvent Event)
SM_RESULT EnterPreparingHibernation()
SM_RESULT CallAtPassive(_In_ DSM_THEN Then)
static const State IgnoringHub
SM_RESULT EnterFailedDeviceGone()
VOID GetDescriptorForHub()
static const State Delaying
SM_RESULT RemovalEndpointsDisabled(_In_ DsmEvent Event)
BOOLEAN PipeIsZeroBandwidth()
SM_RESULT OnPreparingHibernation(_In_ DsmEvent Event)
SM_RESULT RemovalDeviceDisabled(_In_ DsmEvent Event)
static const State PortOnEvents
BOOLEAN WriteCustomProperties()
SM_RESULT StoppedDisabledForCleanup(_In_ DsmEvent Event)
VOID CancelControllerIoctl()
HubChild * Device() const
SM_RESULT ReportCycledWithTimer(_In_ DsmEvent Event)
VOID ReferenceDevicePower()
SM_RESULT OnAwaitingDetachOrRemove(_In_ DsmEvent Event)
BOOLEAN m_FailedPoweredUp
BOOLEAN DeviceSpeedChanged()
SM_RESULT EnterBootDeviceDetached()
SM_RESULT EnumParkForHub()
SM_RESULT MsOsExtendedConfig()
static const State CancelingTransfer
BOOLEAN InstallMsOs20Values()
BOOLEAN EndpointsNeedProgramming()
SM_RESULT HubEndResumedOrReenumerate()
static const State DisablingPort
static const State StoppedHubSuspended
SM_RESULT OnSettingAddress(_In_ DsmEvent Event)
VOID DisableEndpointsPowerLost()
SM_RESULT SuspendPortPlain(_In_ DsmEvent Event)
VOID ReadExtPropertiesHeader()
static const State ForwardingStreams
BOOLEAN IsochDelaySkipped()
VOID RequestPortWarmReset()
static const State EnablingDevice
SM_RESULT SuspendPortArmFailed(_In_ DsmEvent Event)
SM_RESULT HubPortSyncedForSuspend(_In_ DsmEvent Event)
SM_RESULT EnterCancelingTransfer()
SM_RESULT OnAtAddressZeroAgain(_In_ DsmEvent Event)
VOID SetConfigInfoInRequest()
static const State BootDeviceDetached
SM_RESULT AltDeviceDescriptorRead(_In_ DsmEvent Event)
SM_RESULT OnForwardingStreams(_In_ DsmEvent Event)
SM_RESULT ConfiguredEndpointsDisabledForStop(_In_ DsmEvent Event)
SM_RESULT MsOsExtendedRead(_In_ DsmEvent Event)
SM_RESULT LpmU2Disabled(_In_ DsmEvent Event)
SM_RESULT EnterReadingMsOs()
SM_RESULT LpmFinalProgrammed(_In_ DsmEvent Event)
SM_RESULT LpmU1Disabled(_In_ DsmEvent Event)
SM_RESULT LpmLatencyLowered(_In_ DsmEvent Event)
SM_RESULT OnStopped(_In_ DsmEvent Event)
static const State ReadingLanguages
VOID DereferenceDevicePower()
SM_RESULT LpmCleanedUpAfterDetach(_In_ DsmEvent Event)
SM_RESULT Zero20PortOffForHub(_In_ DsmEvent Event)
BOOLEAN RegisterWithHub()
SM_RESULT EnterSettingInterface()
SM_RESULT BosMsOs20Validate()
VOID DisablePortMarkingReset()
SM_RESULT BootDeviceFailed()
SM_RESULT ReenumPortOffHoldingAddressZero(_In_ DsmEvent Event)
SM_RESULT BackToConfigured()
BOOLEAN AdjustLatencyForNoPing()
BOOLEAN m_ConfigFullLength
SM_RESULT EnterDetachedReported()
SM_RESULT HubPortOffForStop(_In_ DsmEvent Event)
SM_RESULT CleanupDeleteAll()
SM_RESULT InterfaceNewDisabled(_In_ DsmEvent Event)
SM_RESULT U2TimeoutStart()
SM_RESULT Zero20StopDelay(_In_ DsmEvent Event)
SM_RESULT BosBillboardRead(_In_ DsmEvent Event)
SM_RESULT ConfiguredNullSet(_In_ DsmEvent Event)
SM_RESULT LpmLatencyTooLarge()
VOID CompleteClientRequestFailed()
BOOLEAN ExtendedConfigHeaderValid()
VOID RecordResetTimeout()
static const State ParkedPortOn
SM_RESULT StoppedPoweredUp()
SM_RESULT EnumRetryOrFailHoldingAddressZero()
static const State CancelingClaimAgain
VOID ReadDeviceDescriptor()
VOID FailIoAndDisablePort()
static const State ReadingProductName
SM_RESULT ReenumDisabledThenAckAndCycle(_In_ DsmEvent Event)
SM_RESULT ReenumPortOffDeviceDisabled(_In_ DsmEvent Event)
SM_RESULT FailedPortDisabledAgain(_In_ DsmEvent Event)
BOOLEAN PrepareConfigLists()
SM_RESULT EnterDetachedReportedConfigured()
VOID CompleteClientRequest()
SM_RESULT ReenumDoneForBootResume(_In_ DsmEvent Event)
BOOLEAN DualRoleSupported()
BOOLEAN ProductNameWanted()
SM_RESULT EnterHubSuspendedReleasingPower()
static const State ReadingDescriptors
SM_RESULT OnDetachedReported(_In_ DsmEvent Event)
SM_RESULT Zero20FirstDescriptorRead(_In_ DsmEvent Event)
SM_RESULT EnterBugChecking()
static const State DetachedMissing
SM_RESULT OnEnumerating(_In_ DsmEvent Event)
static const State PreparingHibernation
static const State NotifyingReset
VOID DereferenceHubPower()
static const State AwaitingPowerUpForReset
SM_RESULT ReenumEndpointsDisabled(_In_ DsmEvent Event)
static const State ReadingFirstDescriptor
SM_RESULT MsOsExtRead(_In_ DsmEvent Event)
SM_RESULT ReenumDoneForPreStart(_In_ DsmEvent Event)
SM_RESULT HubResumeForReenumeration(_In_ DsmEvent Event)
static const State ReportingToPnp
SM_RESULT SuspendedResumeDone()
SM_RESULT EnumPortOffHoldingAddressZero(_In_ DsmEvent Event)
VOID ReadExtendedConfigHeader()
SM_RESULT OnAddressingInEnum(_In_ DsmEvent Event)
static const State ParkedForHubAgain
BOOLEAN ResetAtResumeMarked()
SM_RESULT StoppedAckPreStart()
SM_RESULT OnReadingMsOs(_In_ DsmEvent Event)
SM_RESULT ReportUnknownPdo()
SM_RESULT EnterCancelingClaim()
SM_RESULT EnumTimerFlushedForHub(_In_ DsmEvent Event)
SM_RESULT EndOnHubOrDetach(_In_ DsmEvent Event)
VOID MarkContainerIdUnsupported()
SM_RESULT ReconfiguredBootAfterResume(_In_ DsmEvent Event)
VOID(DeviceMachine::* DSM_ACTION)()
SM_RESULT CleanupPortDisabled(_In_ DsmEvent Event)
SM_RESULT EnterReadingLanguages()
SM_RESULT DetachUnconfigured()
SM_RESULT InterfaceDeleteNewAndFail()
SM_RESULT EnterAwaitingPowerUpAfterWake()
SM_RESULT OnHubSuspended(_In_ DsmEvent Event)
SM_RESULT EnterStarting()
SM_RESULT InterfaceRestoreOld()
static const State DetachedReportedConfigured
SM_RESULT EnterDisablingEndpoints()
SM_RESULT HubDescriptorDone(_In_ DsmEvent Event)
SM_RESULT ReenumSerialNumber()
BOOLEAN AltEnumNeededInEnum()
SM_RESULT StoppedPortSuspendedForHub(_In_ DsmEvent Event)
SM_RESULT OnClaimingAddressZero(_In_ DsmEvent Event)
SM_RESULT LinkExitLatency()
SM_RESULT DescriptorsQueryRegistry()
SM_RESULT StoppedResumeEndedForStop(_In_ DsmEvent Event)
VOID NotifyPortDetached()
static const State ResettingPort
SM_RESULT StoppedEnabledDisabledForHub(_In_ DsmEvent Event)
SM_RESULT ReportMissingAndLeave()
SM_RESULT LinkIsochDelaySet(_In_ DsmEvent Event)
static const State DeviceSuspended
SM_RESULT OnRemovedPortOn(_In_ DsmEvent Event)
static const State Configured
SM_RESULT SuperSpeedResetDone(_In_ DsmEvent Event)
SM_RESULT ReenumStopRetryOnDetach()
SM_RESULT BootDeviceDisableOnDetach()
SM_RESULT SuspendedBackDown(_In_ DsmEvent Event)
BOOLEAN ExtPropertiesHeaderValid()
BOOLEAN DuplicateRetriesUsedUp()
BOOLEAN ConfigReadOnReset()
SM_RESULT ReportAddChild()
static const State Ending
SM_RESULT GoStoppedEnumerated()
SM_RESULT ReenumForStart(_In_ DSM_REENUM Kind)
SM_RESULT SelectConfigFailed(_In_ BOOLEAN LastStatus)
SM_RESULT ReenumDoneForHubResumeUnconfigured(_In_ DsmEvent Event)
static const State SettingAddress
SM_RESULT ReenumDoneForResumeUnconfigured(_In_ DsmEvent Event)
static const State BugChecking
SM_RESULT OnAtAddressZero(_In_ DsmEvent Event)
static const State HubSuspended
static const State UpdatingDevice
SM_RESULT EnumReleaseAndEndDetached()
SM_RESULT ReenumWrongDeviceLeft(_In_ DsmEvent Event)
SM_RESULT ReenumDisabledThenCycle(_In_ DsmEvent Event)
static const State RequestingCriticalPassive
SM_RESULT ReenumForClientUnconfigured()
SM_RESULT BackToUnconfigured()
SM_RESULT OnLinkPowerAgain(_In_ DsmEvent Event)
SM_RESULT EnterParkedForHub()
SM_RESULT OnUpdatingDevice(_In_ DsmEvent Event)
SM_RESULT ForwardStreams(_In_ const State *ReturnTo)
BOOLEAN WaitNeededAfterAddress()
SM_RESULT CleanupDeviceDisabled(_In_ DsmEvent Event)
SM_RESULT OnConfiguredNotStarted(_In_ DsmEvent Event)
SM_RESULT EnterResumingPort()
SM_RESULT StoppedPortOffForNoDriver(_In_ DsmEvent Event)
BOOLEAN SerialNumberCompared()
SM_RESULT EnterForwardingStreams()
SM_RESULT OnCancelingClaimAgain(_In_ DsmEvent Event)
SM_RESULT PortOnOffForHubSuspend(_In_ DsmEvent Event)
SM_RESULT ConfiguredPurgedForHibernation(_In_ DsmEvent Event)
SM_RESULT Again20SecondResetDone(_In_ DsmEvent Event)
static const State DetachedEvents
SM_RESULT StoppedPortOffForHubStop(_In_ DsmEvent Event)
SM_RESULT EnterSuspended()
SM_RESULT EndOnResetForHub(_In_ DsmEvent Event)
SM_RESULT OnLinkPowerInEnum(_In_ DsmEvent Event)
static const State DisablingSuperSpeed
SM_RESULT InterfaceNewEndpointsDisabled(_In_ DsmEvent Event)
SM_RESULT(DeviceMachine::* DSM_NEXT)(_In_ DsmEvent Event)
BOOLEAN SameSerialNumber()
SM_RESULT RemovalNotifyThenReport()
SM_RESULT SuperSpeedResetNotified(_In_ DsmEvent Event)
SM_RESULT ConfigureFailed()
SM_RESULT EnterReadingBos()
SM_RESULT OnShared(_In_ DsmEvent Event)
SM_RESULT Zero20SecondResetAwaitHub(_In_ DsmEvent Event)
SM_RESULT ReenumPortOffAfterConfigFailure(_In_ DsmEvent Event)
SM_RESULT MsOsExtendedHeaderRead(_In_ DsmEvent Event)
SM_RESULT EnterReadingProductName()
BOOLEAN U2TimeoutChanged()
static const State ReadingQualifier
SM_RESULT EnterFailedDevice()
SM_RESULT SelectConfigCleanUp()
static const State FailedDeviceGone
SM_RESULT OnBootDeviceSuspended(_In_ DsmEvent Event)
SM_RESULT GoConfiguredOn()
static const State CollectingDescriptors
static const State ConfiguredHubSuspended
SM_RESULT OnReadingConfigDescriptor(_In_ DsmEvent Event)
SM_RESULT EnterDisablingPort()
SM_RESULT EnterAtAddressZero()
static const SM_EVENT_INFO EventInfo[]
static const State AwaitingPortYielding
SM_RESULT EnterResettingPort()
SM_RESULT ReenumSerialRead(_In_ DsmEvent Event)
SM_RESULT EnterLinkPowerInEnum()
SM_RESULT RemovalDeleteForgetPortOn()
static const State ReadingDeviceText
BOOLEAN BillboardStringValid()
static const State PassiveStep
SM_RESULT AtPassive(_In_ DSM_THEN Then)
BOOLEAN DisableWhenUnused()
SM_RESULT ReenumForBootClient(_In_ BOOLEAN AfterReattach)
SM_RESULT LpmDetachCleanup()
VOID DisableAllEndpoints()
SM_RESULT ReenumConfigDescriptor()
SM_RESULT EnterDelaying()
SM_RESULT BootDeviceDetachDuringReset(_In_ BOOLEAN ContextGone)
SM_RESULT DetachConfigured()
SM_RESULT ReenumParkForHub()
VOID DeleteOldConfigEndpoints()
SM_RESULT OnParkedPortOn(_In_ DsmEvent Event)
BOOLEAN ExtendedConfigValid()
VOID SetInterfaceInfoInRequest()
SM_RESULT HubPortSynced(_In_ DsmEvent Event)
SM_RESULT ReenumFailedForResume(_In_ DsmEvent Event)
SM_RESULT OnAwaitingPowerUpForReset(_In_ DsmEvent Event)
SM_RESULT CallRequest(_In_ const State *Target, _In_ DSM_ACTION Start, _In_ DSM_NEXT Next)
SM_RESULT ClientPipeDone(_In_ DsmEvent Event)
SM_RESULT LpmCleanedUpAfterFailure(_In_ DsmEvent Event)
BOOLEAN SuperSpeedMustBeDisabled()
SM_RESULT ConfiguredEndpointsDisabledForClient(_In_ DsmEvent Event)
BOOLEAN SameDeviceConnected()
SM_RESULT UnconfiguredResumedWithHub(_In_ DsmEvent Event)
SM_RESULT AltBosHeaderRead(_In_ DsmEvent Event)
static const State RequestingCritical
SM_RESULT LpmU2Enabled(_In_ DsmEvent Event)
SM_RESULT BosMsOs20Read(_In_ DsmEvent Event)
SM_RESULT OnBootDeviceSuspending(_In_ DsmEvent Event)
static const State ReenumeratingForHubStart
SM_RESULT Again20FirstResetNotified(_In_ DsmEvent Event)
VOID ForceResetOnNextStart()
SM_RESULT Delay(_In_ DSM_DELAY Kind, _In_ DSM_NEXT Next)
SM_RESULT OnSuspendedHubSuspended(_In_ DsmEvent Event)
SM_RESULT OnBootDeviceResetPending(_In_ DsmEvent Event)
SM_RESULT ReenumEnabled(_In_ DsmEvent Event)
DSM_RESET_KIND ResetKindNeeded()
SM_RESULT ReenumPortOffForHub(_In_ DsmEvent Event)
SM_RESULT AltValidateConfig()
SM_RESULT OnConfiguredOn(_In_ DsmEvent Event)
static const State BootDeviceDetachedContextGone
SM_RESULT EnterResettingSuperSpeed()
BOOLEAN PrepareListsForReset()
static const State AwaitingPowerUpAfterWake
SM_RESULT ReenumDoneForResumeConfigured(_In_ DsmEvent Event)
SM_RESULT ClientHaltCleared(_In_ DsmEvent Event)
SM_RESULT OnUnconfiguredOn(_In_ DsmEvent Event)
SM_RESULT EndForHubOnTimer(_In_ DsmEvent Event)
BOOLEAN MsOsContainerIdSupported()
VOID MarkMsOsUnsupported()
SM_RESULT ReenumDoneForClientConfigured(_In_ DsmEvent Event)
SM_RESULT LpmFailCleanup()
VOID SignalPnpPowerFailure()
SM_RESULT LpmU1TimeoutSet(_In_ DsmEvent Event)
SM_RESULT EnterConfiguring()
SM_RESULT EndOnTransferCanceled(_In_ DsmEvent Event)
VOID DeleteConfigEndpoints()
SM_RESULT MsOsExtHeaderRead(_In_ DsmEvent Event)
SM_RESULT EnterWithPortOn()
SM_RESULT LinkLtmSet(_In_ DsmEvent Event)
VOID EnableDeviceInController()
SM_RESULT StoppedDisabledForNoDriver(_In_ DsmEvent Event)
static const State RemainingDescriptors
SM_RESULT SuspendIoPurged(_In_ DsmEvent Event)
BOOLEAN MsOs20Supported()
SM_RESULT ReenumDoneForHubStart(_In_ DsmEvent Event)
SM_RESULT EnumStopRetryForHub()
SM_RESULT OnDetachedEvents(_In_ DsmEvent Event)
SM_RESULT OnSettingInterface(_In_ DsmEvent Event)
VOID ReadContainerIdHeader()
SM_RESULT UnconfiguredPortOffForStop(_In_ DsmEvent Event)
BOOLEAN FirstDescriptorValid()
SM_RESULT ReenumRetryOrFailHoldingAddressZero()
SM_RESULT MsOsError(_In_ DSM_THEN GoOn)
SM_RESULT BootDeviceDisabledForReset(_In_ DsmEvent Event)
static const State Configuring
SM_RESULT OnClaimingAddressZeroAgain(_In_ DsmEvent Event)
SM_RESULT EnterBootDeviceResetPending()
BOOLEAN U2NeededForEnumerated()
SM_RESULT OnDetachedMissing(_In_ DsmEvent Event)
SM_RESULT EnterEnumerating()
VOID RecordDeviceVersion()
SM_RESULT ConfiguredResumed()
BOOLEAN CancelStateTimer()
BOOLEAN DeviceDescriptorValid()
static const State Stopped
VOID DeleteNewInterfaceEndpoints()
SM_RESULT OnCollectingDescriptors(_In_ DsmEvent Event)
BOOLEAN IgnoreSerialNumber()
SM_RESULT EnterDetachedEvents()
SM_RESULT OnStoppedReady(_In_ DsmEvent Event)
BOOLEAN SelectConfigValid()
SM_RESULT DeleteThen(_In_ DSM_THEN After)
VOID ArmDuplicateDeviceTimer()
VOID ForwardToController()
SM_RESULT EnumRetryDelayEndedHoldingAddressZero(_In_ DsmEvent Event)
VOID BugCheckForBootDevice()
BOOLEAN ContainerIdWanted()
SM_RESULT OnUnconfiguredHubSuspended(_In_ DsmEvent Event)
SM_RESULT EnumPortOffAfterFailure(_In_ DsmEvent Event)
VOID CompleteClientRequestLastStatus()
BOOLEAN AltModeStringValid()
SM_RESULT OnDeviceSuspended(_In_ DsmEvent Event)
SM_RESULT BosAltEnumSent(_In_ DsmEvent Event)
SM_RESULT OnResettingSuperSpeed(_In_ DsmEvent Event)
DSM_NEXT m_AfterConfigure
SM_RESULT ConfiguredSignalAndStay()
SM_RESULT StoppedHubStarted()
BOOLEAN LanguageIdsValid()
static const State ResettingSuperSpeed
SM_RESULT OnAwaitingMsOsInstall(_In_ DsmEvent Event)
BOOLEAN PrepareInterfaceLists()
SM_RESULT ReenumRetryDelayEnded(_In_ DsmEvent Event)
SM_RESULT ReenumFailedForClient(_In_ DsmEvent Event)
VOID MarkAttachSucceeded()
SM_RESULT ReportCreatePdo()
SM_RESULT EnterSuspendingUnconfigured()
SM_RESULT OnHubSuspendedPortOff(_In_ DsmEvent Event)
BOOLEAN ConfigDescriptorValid()
SM_RESULT OnRemainingDescriptors(_In_ DsmEvent Event)
SM_RESULT EnumPdChargingSet(_In_ DsmEvent Event)
SM_RESULT ConfigureInterfaceSet(_In_ DsmEvent Event)
SM_RESULT OnPortOffEvents(_In_ DsmEvent Event)
SM_RESULT ReenumForClientConfigured()
BOOLEAN AlternateSettingLeft()
SM_RESULT Reenumerate(_In_ const State *Target, _In_ DSM_REENUM Kind, _In_ BOOLEAN ForceReset, _In_ DSM_NEXT After)
VOID FreeExtPropertiesBuffer()
SM_RESULT SuspendedDisarmed(_In_ DsmEvent Event)
SM_RESULT LpmU2TimeoutSet(_In_ DsmEvent Event)
SM_RESULT GoUnconfiguredOn()
SM_RESULT OnReadingDescriptors(_In_ DsmEvent Event)
static const State AddressingAgain
SM_RESULT SuspendArmed(_In_ DsmEvent Event)
SM_RESULT BosHeaderRead(_In_ DsmEvent Event)
SM_RESULT EnterFailedHubSuspended()
static const State ClaimingAddressZero
SM_RESULT EnterUpdatingLinkPower()
SM_RESULT MsOsMarkNoContainerId()
SM_RESULT DeleteOnceDisabled(_In_ DsmEvent Event)
static const State FailedHubSuspended
SM_RESULT ReenumForHubStart()
BOOLEAN AllocateExtPropertiesBuffer()
static const State LinkPowerAgain
static const State UnconfiguredHubSuspended
SM_RESULT OnSettingU2Timeout(_In_ DsmEvent Event)
static const State UnconfiguredOn
BOOLEAN CreateEndpoints()
SM_RESULT EnumPortOffWithDevice(_In_ DsmEvent Event)
SM_RESULT ReenumDescriptorRead(_In_ DsmEvent Event)
SM_RESULT EnterReadingDeviceDescriptor()
SM_RESULT RemovalDeleteAfterLeaving()
SM_RESULT EnterDisablingDevice()
static const State AwaitingDelete
SM_RESULT OnParkedForHubInEnum(_In_ DsmEvent Event)
SM_RESULT LinkPowerStart()
VOID StartDuplicateRetries()
SM_RESULT ReenumWrongDevice()
Run to completion engine. The first thread to post into an idle machine drains the queue; everyone el...
enum _DSM_RESET_KIND DSM_RESET_KIND
enum _DSM_DELAY DSM_DELAY
@ HubStoppedHoldingReference
@ PortResetAbortedForSuspend
@ SuspendedAfterHubResume
@ ControllerExitLatencyTooLarge
@ HubStoppingAfterSuspend
@ PortResumeAbortedForSuspend
@ PortNowEnabledOnReconnect
enum _DSM_FEATURE_CHANGE DSM_FEATURE_CHANGE
@ DsmDelayPostResetSuperSpeed
enum _DSM_ADD_CHILD DSM_ADD_CHILD
enum _DSM_REENUM DSM_REENUM
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
_Must_inspect_result_ _In_ PUCXHUB_DEVICE_CREATE_INFO _Out_ UCXUSBDEVICE * Device
PACPI_METHOD_ARGUMENT Next
struct _SM_RESULT SM_RESULT
One state. Handler gets every event the state sees.
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request
_In_ WDFDPC _In_ BOOLEAN Wait
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO