50 #define DEBUGGED_EVENT , TRUE
51 #define TRAP_ON_EVENT , FALSE
53 #define DO_EVENT_TRAP(x) if ((x)->EventDebugged == FALSE) { COVERAGE_TRAP(); }
55 #define EVENT_TRAP_FIELD BOOLEAN EventDebugged;
59 #define DEBUGGED_EVENT
61 #define DO_EVENT_TRAP(x) (0)
64 #define EVENT_TRAP_FIELD
68#if FX_STATE_MACHINE_VERIFY
69enum FxStateMachineDeviceType {
70 FxSmDeviceTypeInvalid = 0,
463 AcquireParentPowerStateLock(
472 ReleaseParentPowerStateLock(
2878#if FX_STATE_MACHINE_VERIFY
2880 CPPNP_STATE_ENTRY_FN_RETURN_STATE_TABLE
2881 GetPnpStateEntryFunctionReturnStatesTableEntry(
2889 CPPOWER_STATE_ENTRY_FN_RETURN_STATE_TABLE
2890 GetPowerStateEntryFunctionReturnStatesTableEntry(
2898 CPPWR_POL_STATE_ENTRY_FN_RETURN_STATE_TABLE
2899 GetPwrPolStateEntryFunctionReturnStatesTableEntry(
2907 ValidatePnpStateEntryFunctionReturnValue(
2913 ValidatePowerStateEntryFunctionReturnValue(
2919 ValidatePwrPolStateEntryFunctionReturnValue(
3056 Irp->MarkIrpPending();
3087 Irp->MarkIrpPending();
3262 __in BOOLEAN CallerSpecifiedProcessingOnDifferentThread
3268 __in BOOLEAN CallerSpecifiedProcessingOnDifferentThread
4058#if FX_IS_KERNEL_MODE
4284#if (FX_CORE_MODE==FX_CORE_KERNEL_MODE)
4303#if (FX_CORE_MODE==FX_CORE_USER_MODE)
4511#if FX_STATE_MACHINE_VERIFY
4515 static const PNP_STATE_ENTRY_FN_RETURN_STATE_TABLE m_WdfPnpStateEntryFunctionReturnStates[];
4516 static const POWER_STATE_ENTRY_FN_RETURN_STATE_TABLE m_WdfPowerStateEntryFunctionReturnStates[];
4517 static const PWR_POL_STATE_ENTRY_FN_RETURN_STATE_TABLE m_WdfPwrPolStateEntryFunctionReturnStates[];
4572 PkgPnp->SignalDeviceRemovedEvent();
4583 (
void) PkgPnp->FireAndForgetIrp(&
irp);
4587 PkgPnp->ProcessDelayedDeletion();
#define InterlockedIncrement
#define InterlockedDecrement
const struct winhelp_callbacks Callbacks
SYSTEM_POWER_STATE_CONTEXT GetParameterPowerSystemPowerStateContext()
VOID SetStatus(__in NTSTATUS Status)
DEVICE_POWER_STATE GetParameterPowerStateDeviceState()
__inline PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
static WDF_DEVICE_POWER_STATE PowerStartingChild(__inout FxPkgPnp *This)
static const PNP_EVENT_TARGET_STATE m_PnpInitOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceWakeCompletePowerUp(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE NotPowerPolOwnerStopping(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolStoppingD0OtherStates[]
static WDF_SPECIAL_FILE_TYPE _UsageToSpecialType(__in DEVICE_USAGE_NOTIFICATION_TYPE Type)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemWakeDeviceWakeCompletePowerUpOtherStates[]
VOID SetInternalFailure(VOID)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolDeviceIdleSleeping(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventRestartReleaseHardware(__inout FxPkgPnp *This)
BOOLEAN IsSxWakeEnabled(VOID)
FxCmResList * GetTranslatedResourceList(VOID)
static WDF_DEVICE_POWER_STATE PowerDxSurpriseRemovedPowerUp(__inout FxPkgPnp *This)
static const PNP_EVENT_TARGET_STATE m_PnpQueriedRemovingOtherStates[]
static CPPOWER_POLICY_STATE_TABLE GetPowerPolicyTableEntry(__in WDF_DEVICE_POWER_POLICY_STATE State)
static WDF_DEVICE_POWER_STATE PowerReportPowerDownFailed(__inout FxPkgPnp *This)
VOID AddInterruptObject(__in FxInterrupt *Interrupt)
static WDF_DEVICE_POWER_POLICY_STATE NotPowerPolOwnerStoppingPoweringDown(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerWakingDmaEnable(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventHardwareAvailablePowerPolicyFailed(__inout FxPkgPnp *This)
BOOLEAN PowerDmaEnableAndScan(__in BOOLEAN ImplicitPowerUp)
static MdCancelRoutineType _PowerWaitWakeCancelRoutine
static WDF_DEVICE_POWER_STATE PowerD0DisarmingWakeAtBusNP(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolCancelingWakeForSystemSleepWakeCanceledOtherStates[]
VOID RemoveUsageDevice(__in MdDeviceObject DependentDevice)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCapablePowerDownNotProcessed(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerD0ArmedForWake(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerNotifyingD0ExitToWakeInterruptsNP(__inout FxPkgPnp *This)
VOID QueueToPowerThread(__in PWORK_QUEUE_ITEM WorkItem)
FxPnpStateCallback * m_PnpStateCallbacks
VOID PnpCheckAssumptions(VOID)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemAsleepWakeArmedOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE NotPowerPolOwnerRemoved(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSleepingWakePowerDownFailedWakeCanceled(__inout FxPkgPnp *This)
BOOLEAN IsPresentPendingPnpIrp(VOID)
FxCmResList * m_Resources
VOID ProcessDelayedDeletion(VOID)
VOID PowerPolicyPostParentToD0ToChildren(VOID)
static const POWER_EVENT_TARGET_STATE m_PowerD0BusWakeOwnerNPOtherStates[]
_Must_inspect_result_ NTSTATUS AllocateEnumInfo(VOID)
FxPnpDeviceUsageNotificationEx m_DeviceUsageNotificationEx
static WDF_DEVICE_PNP_STATE PnpEventInitSurpriseRemoved(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemAsleepWakeArmedNPOtherStates[]
static _Must_inspect_result_ NTSTATUS _PnpCancelRemoveDevice(__inout FxPkgPnp *This, __inout FxIrp *Irp)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemAsleepNoWake(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolWaitingArmedWakeInterruptFiredOtherStates[]
VOID ChildListNotifyRemove(__inout PLONG PendingCount)
static const POWER_POLICY_EVENT_TARGET_STATE m_NotPowerPolOwnerGotoD0States[]
static const POWER_POLICY_EVENT_TARGET_STATE m_NotPowerPolOwnerRemovedStates[]
static const POWER_POLICY_EVENT_TARGET_STATE m_NotPowerPolOwnerStoppingPoweringDownStates[]
static WDF_DEVICE_POWER_STATE PowerWakePendingNP(__inout FxPkgPnp *This)
VOID AddQueryInterface(__in FxQueryInterface *QI, __in BOOLEAN Lock)
VOID RegisterPowerPolicyCallbacks(__in PWDF_POWER_POLICY_EVENT_CALLBACKS Callbacks)
PFN_IO_REPORT_INTERRUPT_INACTIVE m_IoReportInterruptInactive
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCapableWakeCanceled(__inout FxPkgPnp *This)
BOOLEAN HasMultipleInterrupts(VOID)
_Must_inspect_result_ NTSTATUS QueryForCapabilities(VOID)
static _Must_inspect_result_ NTSTATUS _PnpRemoveDevice(__inout FxPkgPnp *This, __inout FxIrp *Irp)
BOOLEAN PowerGotoDxIoStoppedNP(VOID)
static WDF_DEVICE_POWER_STATE PowerStartSelfManagedIoFailed(__inout FxPkgPnp *This)
FxSystemThread * m_PowerThread
_Must_inspect_result_ NTSTATUS HandleQueryBusInformation(__inout FxIrp *Irp)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredNoWakePowerDownNotProcessed(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventRemovedChildrenRemoved(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemWakeDeviceWakeEnabledWakeCanceledNPOtherStates[]
VOID PowerCompleteWakeRequestFromWithinMachine(__in NTSTATUS Status)
friend FxPowerPolicyMachine
static WDF_DEVICE_POWER_POLICY_STATE NotPowerPolOwnerStarting(__inout FxPkgPnp *This)
static VOID STDCALL _PowerThreadInterfaceDereference(__inout PVOID Context)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStarted(__inout FxPkgPnp *This)
BOOLEAN IsS0IdleSystemManaged(VOID)
virtual VOID ReleaseReenumerationInterface(VOID)=0
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSleepingWakeRevertArmWakeNP(__inout FxPkgPnp *This)
VOID __inline PowerPolicyDisarmWakeFromSx(VOID)
ULONG m_InterruptObjectCount
static const PNP_EVENT_TARGET_STATE m_PnpStartedStoppingOtherStates[]
static const PNP_EVENT_TARGET_STATE m_PnpStoppedOtherStates[]
_Must_inspect_result_ NTSTATUS CreatePowerThread(VOID)
static WDF_DEVICE_PNP_STATE PnpEventQueryCanceled(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventQueryStopStaticCheck(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSleepingNoWakeDxRequestFailed(__inout FxPkgPnp *This)
virtual WDF_DEVICE_POWER_STATE PowerCheckDeviceTypeNPOverload(VOID)=0
static const POWER_POLICY_EVENT_TARGET_STATE m_NotPowerPolOwnerGotoDxStates[]
SINGLE_LIST_ENTRY m_DeviceInterfaceHead
FxWaitLockInternal m_QueryInterfaceLock
virtual WDF_DEVICE_PNP_STATE PnpEventFdoRemovedOverload(VOID)=0
FxSelfManagedIoMachine * m_SelfManagedIoMachine
static WDF_DEVICE_POWER_STATE PowerCheckDeviceTypeNP(__inout FxPkgPnp *This)
_Must_inspect_result_ NTSTATUS PnpPowerReferenceDuringQueryPnp(VOID)
VOID PowerSendPowerDownFailureEvent(__in FxPowerDownType Type)
VOID SetPendingDevicePowerIrp(__inout FxIrp *Irp)
static const POWER_POLICY_EVENT_TARGET_STATE m_NotPowerPolOwnerObjectCreatedStates[]
LONG m_SpecialFileCount[WdfSpecialFileMax-1]
_Must_inspect_result_ NTSTATUS PnpDeviceUsageNotification(__inout FxIrp *Irp)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingFailed(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventStartedCancelStop(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolS0WakeCompletePowerUpOtherStates[]
FxCmResList * m_ResourcesRaw
static const PNP_EVENT_TARGET_STATE m_PnpRemovedPdoWaitOtherStates[]
PNP_BUS_INFORMATION m_BusInformation
BOOLEAN PowerIsWakeRequestPresent(VOID)
_Must_inspect_result_ NTSTATUS PnpEnableInterfacesAndRegisterWmi(VOID)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolWakeCapableDeviceIdleOtherStates[]
FxRelatedDeviceList * m_UsageDependentDeviceList
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolTimerExpiredWakeCapablePowerDownFailedWakeInterruptArrivedOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemSleepNeedWakeCompletePowerUp(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE NotPowerPolOwnerStoppingPoweringUp(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeQueryIdle(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredNoWakePoweredDownDisableIdleTimer(__inout FxPkgPnp *This)
VOID DisconnectInterruptNP(VOID)
PFN_IO_DISCONNECT_INTERRUPT_EX m_IoDisconnectInterruptEx
static WDF_DEVICE_POWER_STATE PowerD0DisarmingWakeAtBus(__inout FxPkgPnp *This)
static NTSTATUS _SxWakeSetItem(__in CfxDevice *Device, __in FxWmiInstanceInternal *Instance, __in ULONG DataItemId, __in ULONG InBufferSize, __in PVOID InBuffer)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStopping(__inout FxPkgPnp *This)
VOID PnpPowerPolicySurpriseRemove(VOID)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStartingDecideS0Wake(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerD0NP(__inout FxPkgPnp *This)
FxPowerStateCallback * m_PowerStateCallbacks
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStartedCancelTimer(__inout FxPkgPnp *This)
BOOLEAN m_ReleaseHardwareAfterDescendantsOnFailure
static VOID STDCALL _PowerThreadInterfaceReference(__inout PVOID Context)
BOOLEAN PowerPolicyCancelWaitWake(VOID)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolTimerExpiredWakeCapableWakeSucceededOtherStates[]
static WDF_DEVICE_POWER_STATE PowerSurpriseRemoved(__inout FxPkgPnp *This)
static const PNP_EVENT_TARGET_STATE m_PnpStartedStoppingFailedOtherStates[]
static WDF_DEVICE_PNP_STATE PnpEventQueriedRemoving(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCapableWakeArrived(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventQueriedSurpriseRemove(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerReportPowerUpFailedDerefParent(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolS0WakeDisarm(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE NotPowerPolOwnerStoppingSendStatus(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventStartedRemoving(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolObjectCreatedOtherStates[]
static WDF_DEVICE_POWER_STATE PowerD0SurpriseRemoved(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolTimerExpiredWakeCapablePowerDownFailedCancelWakeOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceWakeTriggeredS0(__inout FxPkgPnp *This)
FxPowerMachine m_PowerMachine
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCompletedPowerDown(__inout FxPkgPnp *This)
LONG m_PowerThreadInterfaceReferenceCount
static WDF_DEVICE_POWER_POLICY_STATE PowerPolCancelingUsbSSForSystemSleep(__inout FxPkgPnp *This)
virtual VOID PowerParentPowerDereference(VOID)=0
BOOLEAN ShouldProcessPowerPolicyEventOnDifferentThread(__in KIRQL CurrentIrql, __in BOOLEAN CallerSpecifiedProcessingOnDifferentThread)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolTimerExpiredWakeCapableCancelWakeOtherStates[]
static const PWCHAR m_RestartStartAchievedName
FxPnpDeviceD0Exit m_DeviceD0Exit
UCHAR m_SystemPowerAction
static WDF_DEVICE_PNP_STATE PnpEventFailedSurpriseRemoved(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolIdleCapableDeviceIdleOtherStates[]
_Must_inspect_result_ NTSTATUS __inline PowerReference(__in BOOLEAN WaitForD0, __in_opt PVOID Tag=NULL, __in_opt LONG Line=0, __in_opt PSTR File=NULL)
static WDF_DEVICE_POWER_POLICY_STATE NotPowerPolOwnerGotoDxInDx(__inout FxPkgPnp *This)
static const POWER_EVENT_TARGET_STATE m_PowerDNotZeroNPOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolCancelUsbSS(__inout FxPkgPnp *This)
virtual NTSTATUS ProcessRemoveDeviceOverload(FxIrp *Irp)=0
static const PNP_EVENT_TARGET_STATE m_PnpRestartHardwareAvailableOtherStates[]
static WDF_DEVICE_PNP_STATE PnpEventFailedIoStarting(__inout FxPkgPnp *This)
VOID PowerProcessEvent(__in FxPowerEvent Event, __in BOOLEAN ProcessEventOnDifferentThread=FALSE)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolStartedWakeCapableOtherStates[]
SYSTEM_POWER_STATE PowerPolicyGetPendingSystemState(VOID)
FxWaitLockInternal m_DeviceInterfaceLock
MdIrp GetPendingPnpIrp(VOID)
static const PNP_EVENT_TARGET_STATE m_PnpHardwareAvailableOtherStates[]
static WDF_DEVICE_PNP_STATE PnpEventFailedInit(__inout FxPkgPnp *This)
_Must_inspect_result_ NTSTATUS PowerPolicySendDevicePowerRequest(__in DEVICE_POWER_STATE DeviceState, __in SendDeviceRequestAction Action)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCompletedHardwareStarted(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolStoppedOtherStates[]
static const PNP_EVENT_TARGET_STATE m_PnpStartedRemovingOtherStates[]
static const POWER_EVENT_TARGET_STATE m_DxSurpriseRemovedOtherStates[]
static WDF_DEVICE_POWER_STATE PowerGotoDxIoStoppedArmedForWake(__inout FxPkgPnp *This)
FxPnpDeviceQueryRemove m_DeviceQueryRemove
static WDF_DEVICE_POWER_POLICY_STATE PowerPolWakeCapableUsbSSCompleted(__inout FxPkgPnp *This)
ULONG GetInterruptObjectCount(VOID)
BOOLEAN IsPowerPolicyOwner(VOID)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolDeviceIdleStopping(__inout FxPkgPnp *This)
ULONG SetUsageNotificationFlags(__in DEVICE_USAGE_NOTIFICATION_TYPE Type, __in BOOLEAN InPath)
VOID SignalDeviceRemovedEvent(VOID)
BYTE m_SetDeviceRemoveProcessed
VOID PowerSendPowerUpFailureEvent(VOID)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolCancelingWakeForSystemSleepOtherStates[]
VOID PnpEnterNewState(__in WDF_DEVICE_PNP_STATE State)
static _Must_inspect_result_ NTSTATUS _PnpQueryRemoveDevice(__inout FxPkgPnp *This, __inout FxIrp *Irp)
static const PNP_EVENT_TARGET_STATE m_PnpQueryStopPendingOtherStates[]
FxEnumerationInfo * m_EnumInfo
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSleepingSendWake(__inout FxPkgPnp *This)
VOID ReleasePowerThread(VOID)
ULONG PowerPolicyGetCurrentWakeReason(VOID)
VOID PowerPolicyCompleteSystemPowerIrp(VOID)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemWakeDeviceWakeEnabledNPOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSleeping(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCapableWakeInterruptArrived(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_NotPowerPolOwnerGotoD0InD0States[]
_Must_inspect_result_ NTSTATUS AddUsageDevice(__in MdDeviceObject DependentDevice)
static MdRequestPowerCompleteType _PowerPolDeviceWaitWakeComplete
static const POWER_POLICY_EVENT_TARGET_STATE m_NotPowerPolOwnerStartingSucceededStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppedRemoving(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceWakeDisarm(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerWakingDmaEnableNP(__inout FxPkgPnp *This)
VOID PowerPolicyChildPoweredDown(VOID)
_Must_inspect_result_ NTSTATUS HandleQueryInterfaceForPowerThread(__inout FxIrp *Irp, __out PBOOLEAN CompleteRequest)
VOID SetPowerCaps(__in PWDF_DEVICE_POWER_CAPABILITIES PowerCapabilities)
BOOLEAN m_InternalFailure
VOID PnpPowerPolicyStart(VOID)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceWokeDisarm(__inout FxPkgPnp *This)
static const POWER_EVENT_TARGET_STATE m_PowerD0NPOtherStates[]
static WDF_DEVICE_POWER_STATE PowerCheckParentStateArmedForWake(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerDxStoppedArmForWake(__inout FxPkgPnp *This)
_Must_inspect_result_ NTSTATUS PowerPolicyPowerDownForSx(__in DEVICE_POWER_STATE DxState, __in SendDeviceRequestAction Action)
static VOID _SetPowerCapState(__in ULONG Index, __in DEVICE_POWER_STATE State, __out PULONG Result)
static VOID _PowerProcessEventInner(__in FxPkgPnp *This, __in FxPostProcessInfo *Info, __in PVOID WorkerContext)
_Must_inspect_result_ NTSTATUS PowerPolicySendWaitWakeRequest(__in SYSTEM_POWER_STATE SystemState)
VOID SetUsageSupport(__in DEVICE_USAGE_NOTIFICATION_TYPE Usage, __in BOOLEAN Supported)
static WDF_DEVICE_PNP_STATE PnpEventRemoved(__inout FxPkgPnp *This)
BOOLEAN ShouldProcessPnpEventOnDifferentThread(__in KIRQL CurrentIrql, __in BOOLEAN CallerSpecifiedProcessingOnDifferentThread)
__drv_when(!NT_SUCCESS(return), __drv_arg(ResourcesMatched, _Must_inspect_result_)) NTSTATUS PnpPrepareHardware(__out PBOOLEAN ResourcesMatched)
BOOLEAN IsDevicePowerUpIrpPending(VOID)
MxEvent * m_DeviceRemoveProcessed
static const PNP_EVENT_TARGET_STATE m_PnpStoppedWaitForStartCompletionOtherStates[]
BOOLEAN IsDefaultReleaseHardwareOrder(VOID)
VOID PnpDisableInterfaces(VOID)
virtual const PFN_PNP_POWER_CALLBACK * GetDispatchPower(VOID)=0
static WDF_DEVICE_PNP_STATE PnpEventInitQueryRemove(__inout FxPkgPnp *This)
static NTSTATUS _S0IdleQueryInstance(__in CfxDevice *Device, __in FxWmiInstanceInternal *Instance, __in ULONG OutBufferSize, __out PVOID OutBuffer, __out PULONG BufferUsed)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemWakeDeviceToD0OtherStates[]
_Must_inspect_result_ NTSTATUS HandleQueryDeviceRelations(__inout FxIrp *Irp, __inout FxRelatedDeviceList *List)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSleepingSendWakeOtherStates[]
static WDF_DEVICE_POWER_STATE PowerInitialConnectInterruptFailed(__inout FxPkgPnp *This)
static MdRequestPowerCompleteType _PowerPolDevicePowerDownComplete
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolTimerExpiredWakeCompletedPowerDownOtherStates[]
_Must_inspect_result_ NTSTATUS PnpMatchResources(VOID)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredNoWakeCompletePowerDown(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerD0BusWakeOwner(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_NotPowerPolOwnerStoppingWaitForImplicitPowerDownStates[]
BOOLEAN PowerPolicyCanWakeFromSystemState(__in SYSTEM_POWER_STATE SystemState)
static WDF_DEVICE_POWER_STATE PowerD0Starting(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerInitialSelfManagedIoFailed(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolStartedIdleCapableOtherStates[]
virtual BOOLEAN PnpSendStartDeviceDownTheStackOverload(VOID)=0
static WDF_DEVICE_POWER_POLICY_STATE NotPowerPolOwnerGotoDx(__inout FxPkgPnp *This)
virtual const PFN_PNP_POWER_CALLBACK * GetDispatchPnp(VOID)=0
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCapableSendWake(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE NotPowerPolOwnerStoppingFailed(__inout FxPkgPnp *This)
static const POWER_EVENT_TARGET_STATE m_PowerDxStoppedOtherStates[]
BOOLEAN IsUsageSupported(__in DEVICE_USAGE_NOTIFICATION_TYPE Usage)
VOID PowerPolicyProcessEventInner(__inout FxPostProcessInfo *Info)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingResetDevice(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolTimerExpiredNoWakeCompletePowerDownOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolDevicePowerRequestFailed(__inout FxPkgPnp *This)
NTSTATUS NotifyResourceObjectsDx(__in ULONG NotifyFlags)
static WDF_DEVICE_POWER_POLICY_STATE NotPowerPolOwnerStartingFailed(__inout FxPkgPnp *This)
POWER_THREAD_INTERFACE m_PowerThreadInterface
static WDF_DEVICE_POWER_STATE PowerD0ArmedForWakeNP(__inout FxPkgPnp *This)
VOID RevokeDmaEnablerResources(__in FxDmaEnabler *Enabler)
BYTE m_DevicePowerStateOld
static WDF_DEVICE_POWER_STATE PowerWakingConnectInterruptFailed(__inout FxPkgPnp *This)
LONG AdjustUsageCount(__in DEVICE_USAGE_NOTIFICATION_TYPE Usage, __in BOOLEAN Add)
static WDF_DEVICE_POWER_STATE PowerGotoDxIoStoppedArmedForWakeNP(__inout FxPkgPnp *This)
PFN_IO_REPORT_INTERRUPT_ACTIVE m_IoReportInterruptActive
static NTSTATUS _SxWakeQueryInstance(__in CfxDevice *Device, __in FxWmiInstanceInternal *Instaace, __in ULONG OutBufferSize, __out PVOID OutBuffer, __out PULONG BufferUsed)
FxCREvent * m_PowerThreadEvent
static WDF_DEVICE_PNP_STATE PnpEventFailed(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerInitialPowerUpFailedDerefParent(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolWokeFromS0NotifyDriver(__inout FxPkgPnp *This)
FxPowerPolicyStateCallback * m_PowerPolicyStateCallbacks
VOID PowerPolicyChildrenCanPowerUp(VOID)
NTSTATUS UpdateWmiInstance(_In_ FxWmiInstanceAction Action, _In_ BOOLEAN ForS0Idle)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolIoPresentArmedOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStartingFailed(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerWakingConnectInterruptFailedNP(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventQueryStopPending(__inout FxPkgPnp *This)
VOID SetPendingPnpIrpStatus(__in NTSTATUS Status)
virtual WDF_DEVICE_PNP_STATE PnpGetPostRemoveState(VOID)=0
_Must_inspect_result_ NTSTATUS PostCreateDeviceInitialize(VOID)
static WDF_DEVICE_POWER_STATE PowerGotoDxStopped(__inout FxPkgPnp *This)
virtual NTSTATUS QueryForPowerThread(VOID)=0
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredDecideUsbSS(__inout FxPkgPnp *This)
FxPnpMachine m_PnpMachine
static WDF_DEVICE_POWER_STATE PowerStartingCheckDeviceType(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolDeviceIdleReturnToActive(__inout FxPkgPnp *This)
VOID PowerConnectInterruptFailed(VOID)
SINGLE_LIST_ENTRY m_QueryInterfaceHead
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemAsleepWakeArmedNP(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventStartedStopping(__inout FxPkgPnp *This)
static _Must_inspect_result_ NTSTATUS _PnpCancelStopDevice(__inout FxPkgPnp *This, __inout FxIrp *Irp)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStartingPoweredUp(__inout FxPkgPnp *This)
static DEVICE_USAGE_NOTIFICATION_TYPE _SpecialTypeToUsage(__in WDF_SPECIAL_FILE_TYPE Type)
MdIrp ClearPendingDevicePowerIrp(VOID)
static WDF_DEVICE_PNP_STATE PnpEventRestart(__inout FxPkgPnp *This)
static const PNP_EVENT_TARGET_STATE m_PnpFailedIoStartingOtherStates[]
static WDF_DEVICE_POWER_STATE PowerGotoStopped(__inout FxPkgPnp *This)
_Must_inspect_result_ NTSTATUS PowerPolicyHandleSystemQueryPower(__in SYSTEM_POWER_STATE QueryState)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingD0Failed(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolRestartingFailed(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerCheckParentStateNP(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_NotPowerPolOwnerStoppedStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolWaitingArmedWakeSucceededCancelUsbSS(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCapablePowerDownFailedUsbSS(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerStoppedCompleteDx(__inout FxPkgPnp *This)
static const PWCHAR m_RestartCountName
static WDF_DEVICE_POWER_STATE PowerD0StartingConnectInterrupt(__inout FxPkgPnp *This)
BOOLEAN PowerPolicyCancelUsbSSIfCapable(VOID)
static WDF_DEVICE_PNP_STATE PnpEventFailedStarted(__inout FxPkgPnp *This)
VOID PowerPolicyUpdateSystemWakeSource(__in FxIrp *Irp)
_Must_inspect_result_ NTSTATUS PowerPolicyCanChildPowerUp(__out PBOOLEAN PowerUp)
VOID ReadRegistrySxWake(__in PCUNICODE_STRING ValueName, __out BOOLEAN *Enabled)
static WDF_DEVICE_POWER_STATE PowerDxStoppedDecideDxState(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceToD0(__inout FxPkgPnp *This)
FxPnpDeviceD0Entry m_DeviceD0Entry
static const POWER_POLICY_EVENT_TARGET_STATE m_NotPowerPolOwnerDxStates[]
static WDF_DEVICE_POWER_STATE PowerCheckDeviceType(__inout FxPkgPnp *This)
FxSpinLockTransactionedList * m_DmaEnablerList
static WDF_DEVICE_POWER_POLICY_STATE PowerPolWaitingArmedWakeInterruptFired(__inout FxPkgPnp *This)
VOID PnpCleanupForRemove(__in BOOLEAN GracefulRemove)
DEVICE_POWER_STATE PowerPolicyGetDeviceDeepestDeviceWakeState(__in SYSTEM_POWER_STATE SystemState)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolWokeFromS0UsbSS(__inout FxPkgPnp *This)
static const PNP_EVENT_TARGET_STATE m_PnpRestartOtherStates[]
static WDF_DEVICE_PNP_STATE PnpEventEnableInterfaces(__inout FxPkgPnp *This)
virtual VOID DeleteSymbolicLinkOverload(BOOLEAN GracefulRemove)=0
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolStartedOtherStates[]
static WDF_DEVICE_POWER_STATE PowerGotoDNotZero(__inout FxPkgPnp *This)
NTSTATUS FilterResourceRequirements(__in IO_RESOURCE_REQUIREMENTS_LIST **IoList)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCapablePowerDownFailedCancelWake(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemAsleepWakeArmed(__inout FxPkgPnp *This)
VOID PowerPolicySubmitUsbIdleNotification(VOID)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceWakeEnabledWakeCanceled(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolS0NoWakePowerUpOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolPowerUpForSystemSleepNotSeen(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceWakeDisabled(__inout FxPkgPnp *This)
static const PNP_EVENT_TARGET_STATE m_PnpInitQueryRemoveOtherStates[]
VOID PowerSendPowerDownEvents(__in FxPowerDownType Type)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemSleepNeedWake(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerDxDisablingWakeAtBusNP(__inout FxPkgPnp *This)
MdIrp ClearPendingPnpIrp(VOID)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolWaitingUnarmedOtherStates[]
static WDF_DEVICE_POWER_STATE PowerDxStoppedArmForWakeNP(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE NotPowerPolOwnerGotoD0(__inout FxPkgPnp *This)
static const POWER_EVENT_TARGET_STATE m_DxArmedForWakeNPOtherStates[]
VOID NotifyResourceobjectsToReleaseResources(VOID)
static const NOT_POWER_POLICY_OWNER_STATE_TABLE m_WdfNotPowerPolicyOwnerStates[]
static const POWER_POLICY_EVENT_TARGET_STATE m_NotPowerPolOwnerStoppingPoweringUpStates[]
static WDF_DEVICE_PNP_STATE PnpEventFailedPowerPolicyRemoved(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolWakeCapableDeviceIdle(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventQueryRemoveStaticCheck(__inout FxPkgPnp *This)
VOID SetPnpCaps(__in PWDF_DEVICE_PNP_CAPABILITIES PnpCapabilities)
static WDF_DEVICE_PNP_STATE PnpEventQueryRemoveEnsureDeviceAwake(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredNoWakeReturnToActive(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerUpFailed(__inout FxPkgPnp *This)
VOID CommitUsageNotification(__in DEVICE_USAGE_NOTIFICATION_TYPE Type, __in ULONG OldFlags)
static const PNP_EVENT_TARGET_STATE m_PnpFailedWaitForRemoveOtherStates[]
static WDF_DEVICE_POWER_STATE PowerWakingNP(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventFailedPowerDown(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventHardwareAvailable(__inout FxPkgPnp *This)
static const ULONG m_RestartTimePeriodMaximum
virtual NTSTATUS AskParentToRemoveAndReenumerate(VOID)=0
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStartedIdleCapable(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerWakingConnectInterruptNP(__inout FxPkgPnp *This)
VOID AddChildList(__in FxChildList *List)
static WDF_DEVICE_POWER_STATE PowerD0StartingDmaEnable(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemWakeDeviceWakeInterruptFiredOtherStates[]
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolTimerExpiredWakeCapableWakeArrivedOtherStates[]
MdIrp m_PendingSystemPowerIrp
BOOLEAN IsS0IdleUsbSSEnabled(VOID)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolRestartingOtherStates[]
static WDF_DEVICE_PNP_STATE PnpEventInitQueryRemoveCanceled(__inout FxPkgPnp *This)
static const POWER_EVENT_TARGET_STATE m_PowerD0BusWakeOwnerOtherStates[]
VOID WakeInterruptCreated(VOID)
static const POWER_EVENT_TARGET_STATE m_PowerD0OtherStates[]
virtual VOID PnpEventSurpriseRemovePendingOverload(VOID)
LONG GetPnpCapsInternal(VOID)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSleepingPowerDownNotProcessed(__inout FxPkgPnp *This)
static _Must_inspect_result_ NTSTATUS _PnpStopDevice(__inout FxPkgPnp *This, __inout FxIrp *Irp)
BOOLEAN m_SpecialSupport[WdfSpecialFileMax-1]
BOOLEAN PowerPolicyIsWakeEnabled(VOID)
BOOLEAN __inline PowerPolicyShouldPropagateWakeStatusToChildren(VOID)
SYSTEM_POWER_STATE PowerPolicyGetDeviceDeepestSystemWakeState(VOID)
static WDF_DEVICE_POWER_STATE PowerGotoDxStoppedDisableInterruptNP(__inout FxPkgPnp *This)
VOID RemoveInterruptObject(__in FxInterrupt *Interrupt)
static WDF_DEVICE_POWER_STATE PowerCheckParentState(__inout FxPkgPnp *This)
static VOID _PowerSetSystemWakeSource(__in FxIrp *Irp)
static WDF_DEVICE_PNP_STATE PnpEventStartedCancelRemove(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventStopped(__inout FxPkgPnp *This)
static _Must_inspect_result_ NTSTATUS _PnpQueryStopDevice(__inout FxPkgPnp *This, __inout FxIrp *Irp)
static WDF_DEVICE_POWER_STATE PowerNotifyingD0ExitToWakeInterrupts(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSleepingNoWakeCompletePowerDownOtherStates[]
MdIrp GetPendingSystemPowerIrp(VOID)
static WDF_DEVICE_POWER_STATE PowerGotoImplicitD3DisarmWakeAtBus(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventCheckForDevicePresence(__inout FxPkgPnp *This)
VOID NotPowerPolicyOwnerEnterNewState(__in WDF_DEVICE_POWER_POLICY_STATE NewState)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolRemoved(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerInitialPowerUpFailed(__inout FxPkgPnp *This)
LONG GetPnpStateInternal(VOID)
VOID PnpPowerPolicyRemove(VOID)
static WDF_DEVICE_PNP_STATE PnpEventQueryStopEnsureDeviceAwake(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStartedWakeCapableCancelTimerForSleep(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSleepingWakePowerDownFailed(__inout FxPkgPnp *This)
VOID PowerPolicyBlockChildrenPowerUp(VOID)
VOID RemoveDmaEnabler(__in FxDmaEnabler *Enabler)
static WDF_DEVICE_POWER_STATE PowerFinalPowerDownFailed(__inout FxPkgPnp *This)
VOID CleanupStateMachines(__in BOOLEAN ClenaupPnp)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingCancelWake(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStartingSucceeded(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemSleepNeedWakeCompletePowerUpOtherStates[]
VOID __inline PowerDereference(__in_opt PVOID Tag=NULL, __in_opt LONG Line=0, __in_opt PSTR File=NULL)
VOID SetSpecialFileSupport(__in WDF_SPECIAL_FILE_TYPE FileType, __in BOOLEAN Supported)
VOID GetPnpState(__out PWDF_DEVICE_STATE State)
virtual WDF_DEVICE_PNP_STATE PnpEventEjectHardwareOverload(VOID)=0
static WDF_DEVICE_POWER_STATE PowerWakingDmaEnableFailedNP(__inout FxPkgPnp *This)
VOID PnpPowerDereferenceSelf(VOID)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolTimerExpiredWakeCapableUsbSSOtherStates[]
static WDF_DEVICE_POWER_STATE PowerUpFailedDerefParentNP(__inout FxPkgPnp *This)
static const PNP_EVENT_TARGET_STATE m_PnpRestartingOtherStates[]
static const POWER_POLICY_EVENT_TARGET_STATE m_NotPowerPolOwnerStartingFailedStates[]
_Must_inspect_result_ NTSTATUS AddRemovalDevice(__in MdDeviceObject DependentDevice)
static NTSTATUS _S0IdleSetItem(__in CfxDevice *Device, __in FxWmiInstanceInternal *Instance, __in ULONG DataItemId, __in ULONG InBufferSize, __in PVOID InBuffer)
_Must_inspect_result_ NTSTATUS HandleQueryBusRelations(__inout FxIrp *Irp)
BOOLEAN PowerDmaPowerDown(VOID)
static const POWER_EVENT_TARGET_STATE m_PowerD0ArmedForWakeNPOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCompletedPowerUp(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerGotoDxArmedForWakeNP(__inout FxPkgPnp *This)
VOID PowerPolicyCancelUsbSS(VOID)
static WDF_DEVICE_PNP_STATE PnpEventQueryRemoveAskDriver(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerWakingConnectInterrupt(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolWaitingArmedQueryIdle(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerWaking(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolS0NoWakeCompletePowerUpOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSleepingWakeWakeArrivedNP(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCapableUndoPowerDown(__inout FxPkgPnp *This)
static const PNP_STATE_TABLE m_WdfPnpStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceWakeDisarmNP(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolWokeFromS0OtherStates[]
LONG GetUsageCount(__in __range(1, 4) ULONG Usage)
BOOLEAN PowerIndicateWaitWakeStatus(__in NTSTATUS WaitWakeStatus)
static WDF_DEVICE_POWER_STATE PowerStartSelfManagedIoNP(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerGotoDxFailed(__inout FxPkgPnp *This)
FxPnpDeviceQueryStop m_DeviceQueryStop
VOID PowerEnterNewState(__in WDF_DEVICE_POWER_STATE State)
static WDF_DEVICE_POWER_STATE PowerGotoDxNPFailed(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSleepingWakeRevertArmWakeNPOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolCheckPowerPageable(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingResetDeviceFailed(__inout FxPkgPnp *This)
POWER_ACTION GetSystemPowerAction(VOID)
static WDF_DEVICE_PNP_STATE PnpEventSurpriseRemoved(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemWakeDeviceWakeTriggeredS0OtherStates[]
VOID RemoveChildList(__in FxChildList *List)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolStoppingResetDeviceOtherStates[]
static VOID _PnpProcessEventInner(__inout FxPkgPnp *This, __inout FxPostProcessInfo *Info, __in PVOID WorkerContext)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolDeviceD0PowerRequestFailed(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerPowerFailedPowerDown(__inout FxPkgPnp *This)
static VOID _PowerThreadEnqueue(__in PVOID Context, __in PWORK_QUEUE_ITEM WorkItem)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceWakeEnabled(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolWaitingArmedUsbSS(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSleepingWakeWakeArrived(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerUpFailedNP(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeSucceeded(__inout FxPkgPnp *This)
_Must_inspect_result_ BOOLEAN PowerDmaPowerUp(VOID)
static WDF_DEVICE_POWER_STATE PowerWakePending(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerGotoDNotZeroIoStopped(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolStoppingResetDeviceCompletePowerUpOtherStates[]
static WDF_DEVICE_POWER_STATE PowerGotoD3Stopped(__inout FxPkgPnp *This)
_Must_inspect_result_ NTSTATUS ValidateInterruptResourceCm(__in PCM_PARTIAL_RESOURCE_DESCRIPTOR CmIntResourceRaw, __in PCM_PARTIAL_RESOURCE_DESCRIPTOR CmIntResource, __in PWDF_INTERRUPT_CONFIG Configuration)
BOOLEAN m_WakeInterruptsKeepConnected
static const POWER_POLICY_EVENT_TARGET_STATE m_NotPowerPolOwnerGotoDxInDxStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSleepingWakePowerDown(__inout FxPkgPnp *This)
static const PNP_EVENT_TARGET_STATE m_PnpEjectFailedOtherStates[]
VOID PnpAssignInterruptsSyncIrql(VOID)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredNoWakeUndoPowerDown(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventStartingFromStopped(__inout FxPkgPnp *This)
static NTSTATUS _S0IdleSetInstance(__in CfxDevice *Device, __in FxWmiInstanceInternal *Instance, __in ULONG InBufferSize, __in PVOID InBuffer)
VOID PowerPolicySetSxWakeState(__in BOOLEAN State)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemWakeDeviceToD0CompletePowerUpOtherStates[]
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSleepingWakeWakeArrivedNPOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolIoPresentArmedWakeCanceled(__inout FxPkgPnp *This)
BOOLEAN PnpCheckAndIncrementRestartCount(VOID)
NTSTATUS PowerPolicySetS0IdleSettings(__in PWDF_DEVICE_POWER_POLICY_IDLE_SETTINGS Settings)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolWaitingArmedStoppingCancelUsbSS(__inout FxPkgPnp *This)
static NTSTATUS _SxWakeSetInstance(__in CfxDevice *Device, __in FxWmiInstanceInternal *Instance, __in ULONG InBufferSize, __in PVOID InBuffer)
virtual WDF_DEVICE_PNP_STATE PnpEventPdoRemovedOverload(VOID)=0
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolIoPresentArmedWakeCanceledOtherStates[]
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemWakeDeviceWakeEnabledOtherStates[]
static WDF_DEVICE_POWER_STATE PowerCheckParentStateArmedForWakeNP(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemWakeDeviceWakeEnabledWakeCanceledOtherStates[]
FxCmResList * GetRawResourceList(VOID)
VOID AckPendingWakeInterruptOperation(__in BOOLEAN ProcessPowerEventOnDifferentThread)
static CPPNP_STATE_TABLE GetPnpTableEntry(__in WDF_DEVICE_PNP_STATE State)
static CPPOWER_STATE_TABLE GetPowerTableEntry(__in WDF_DEVICE_POWER_STATE State)
static WDF_DEVICE_POWER_STATE PowerDNotZeroNP(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerGotoDxArmedForWake(__inout FxPkgPnp *This)
static const GUID GUID_POWER_THREAD_INTERFACE
FxPnpDeviceReleaseHardware m_DeviceReleaseHardware
static WDF_DEVICE_POWER_STATE PowerStartSelfManagedIo(__inout FxPkgPnp *This)
_Must_inspect_result_ NTSTATUS CreatePowerThreadIfNeeded(VOID)
SharedPowerData m_SharedPower
static MdCompletionRoutineType _PowerPolicyUsbSelectiveSuspendCompletionRoutine
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingDisarmWakeWakeCanceled(__inout FxPkgPnp *This)
VOID RemoveRemovalDevice(__in MdDeviceObject DependentDevice)
virtual NTSTATUS PowerCheckParentOverload(BOOLEAN *ParentOn)=0
FxPnpDeviceUsageNotification m_DeviceUsageNotification
NTSTATUS ReadStateFromRegistry(_In_ PCUNICODE_STRING ValueName, _Out_ PULONG Value)
BOOLEAN SupportsWakeInterrupt(VOID)
static WDF_DEVICE_POWER_STATE PowerEnablingWakeAtBusNP(__inout FxPkgPnp *This)
static const POWER_EVENT_TARGET_STATE m_PowerStoppedOtherStates[]
static const POWER_STATE_TABLE m_WdfPowerStates[]
_Must_inspect_result_ NTSTATUS NotifyResourceObjectsD0(__in ULONG NotifyFlags)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCompletedDisarm(__inout FxPkgPnp *This)
NTSTATUS RegisterPowerPolicyWmiInstance(__in const GUID *Guid, __in FxWmiInstanceInternalCallbacks *Callbacks, __out FxWmiInstanceInternal **Instance)
VOID SetPnpState(__in PWDF_DEVICE_STATE State)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemSleepPowerRequestFailed(__inout FxPkgPnp *This)
MdIrp ClearPendingSystemPowerIrp(VOID)
static WDF_DEVICE_POWER_STATE PowerInitialDmaEnableFailed(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventRemovedPdoSurpriseRemoved(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolStoppingCancelWakeOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingResetDeviceCompletePowerUp(__inout FxPkgPnp *This)
static const POWER_POLICY_STATE_TABLE m_WdfPowerPolicyStates[]
static const PNP_EVENT_TARGET_STATE m_PnpQueryRemovePendingOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE NotPowerPolOwnerStarted(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolStartingOtherStates[]
static WDF_DEVICE_POWER_STATE PowerD0StartingStartSelfManagedIo(__inout FxPkgPnp *This)
FxPnpDevicePrepareHardware m_DevicePrepareHardware
ULONG m_WakeInterruptCount
static MdRequestPowerCompleteType _PowerPolDevicePowerUpComplete
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceWokeDisarmNP(__inout FxPkgPnp *This)
_Must_inspect_result_ NTSTATUS DispatchWaitWake(__inout FxIrp *Irp)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolRemovedOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemSleepFromDeviceWaitingUnarmed(__inout FxPkgPnp *This)
virtual BOOLEAN Dispose(VOID)
static const POWER_POLICY_EVENT_TARGET_STATE m_NotPowerPolOwnerStartingStates[]
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolWaitingArmedWakeInterruptFiredDuringPowerDownOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCapableCancelWake(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolStoppingDisarmWakeOtherStates[]
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolStartedWaitForIdleTimeoutOtherStates[]
VOID ReadRegistryS0Idle(__in PCUNICODE_STRING ValueName, __out BOOLEAN *Enabled)
VOID PnpEventRemovedCommonCode(VOID)
static const PNP_EVENT_TARGET_STATE m_PnpStartedOtherStates[]
_Must_inspect_result_ NTSTATUS AllocateDmaEnablerList(VOID)
VOID PnpProcessEvent(__in FxPnpEvent Event, __in BOOLEAN ProcessEventOnDifferentThread=FALSE)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingD0(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerGotoDNotZeroIoStoppedNP(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE NotPowerPolOwnerGotoD0InD0(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventStoppedWaitForStartCompletion(__inout FxPkgPnp *This)
LIST_ENTRY m_InterruptListHead
VOID PnpFinishProcessingIrp(__in BOOLEAN IrpMustBePresent=TRUE)
_Must_inspect_result_ NTSTATUS ValidateCmResource(__inout PCM_PARTIAL_RESOURCE_DESCRIPTOR *CmResourceRaw, __inout PCM_PARTIAL_RESOURCE_DESCRIPTOR *CmResource)
FxPnpDeviceD0ExitPreInterruptsDisabled m_DeviceD0ExitPreInterruptsDisabled
static const PWCHAR m_RestartStartTimeName
_Must_inspect_result_ NTSTATUS PnpPowerReferenceSelf(VOID)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolPowerUpForSystemSleepFailed(__inout FxPkgPnp *This)
FxPnpDeviceSurpriseRemoval m_DeviceSurpriseRemoval
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCapablePowerDown(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingD0CancelUsbSS(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSleepingNoWakePowerDownOtherStates[]
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolTimerExpiredWakeCapableWakeFailedOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStarting(__inout FxPkgPnp *This)
static VOID _PowerPolicyProcessEventInner(__inout FxPkgPnp *This, __inout FxPostProcessInfo *Info, __in PVOID WorkerContext)
BOOLEAN HasPowerThread(VOID)
NTSTATUS UpdateWmiInstanceForSxWake(__in FxWmiInstanceAction Action)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolTimerExpiredWakeCapableSendWakeOtherStates[]
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemWakeDeviceWakeInterruptFiredNPOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolCancelingWakeForSystemSleep(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerWakingDmaEnableFailed(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingDisarmWake(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerGotoDxStoppedDisableInterrupt(__inout FxPkgPnp *This)
VOID CleanupDeviceFromFailedCreate(__in MxEvent *WaitEvent)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceWakeEnabledNP(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolIdleCapableDeviceIdle(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerGotoDNotZeroNP(__inout FxPkgPnp *This)
virtual VOID PowerReleasePendingDeviceIrp(BOOLEAN IrpMustBePresent=TRUE)=0
VOID SetPendingSystemPowerIrp(__inout FxIrp *Irp)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSleepingWakePowerDownOtherStates[]
static const POWER_EVENT_TARGET_STATE m_WakePendingNPOtherStates[]
BOOLEAN IsS0IdleWakeFromS0Enabled(VOID)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolStoppingDisarmWakeCancelWakeOtherStates[]
static const POWER_EVENT_TARGET_STATE m_DxArmedForWakeOtherStates[]
static WDF_DEVICE_POWER_STATE PowerDZero(__inout FxPkgPnp *This)
FxPnpStateAndCaps m_PnpStateAndCaps
NTSTATUS AssignPowerFrameworkSettings(__in PWDF_POWER_FRAMEWORK_SETTINGS PowerFrameworkSettings)
NTSTATUS CompletePowerRequest(__inout FxIrp *Irp, __in NTSTATUS Status)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceWakeEnabledWakeCanceledNP(__inout FxPkgPnp *This)
virtual NTSTATUS PowerEnableWakeAtBusOverload(VOID)
VOID PowerSetDevicePowerState(__in WDF_POWER_DEVICE_STATE State)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolS0NoWakePowerUp(__inout FxPkgPnp *This)
VOID RevertUsageNotificationFlags(__in DEVICE_USAGE_NOTIFICATION_TYPE Type, __in BOOLEAN InPath, __in ULONG OldFlags)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolWaitingArmedWakeFailedCancelUsbSS(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCapableCleanup(__inout FxPkgPnp *This)
friend FxPowerPolicyOwnerSettings
BOOLEAN PowerPolicyCanIdlePowerDown(__in DEVICE_POWER_STATE DxState)
FxRelatedDeviceList * m_RemovalDeviceList
VOID PowerCompletePendedWakeIrp(VOID)
BOOLEAN PowerGotoDxIoStopped(VOID)
VOID SetPendingPnpIrp(__inout FxIrp *Irp, __in BOOLEAN MarkIrpPending=TRUE)
static WDF_DEVICE_PNP_STATE PnpEventQueryStopAskDriver(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolTimerExpiredWakeCapableWakeInterruptArrivedOtherStates[]
static const PNP_EVENT_TARGET_STATE m_PnpInitStartingOtherStates[]
BOOLEAN m_DeviceInterfacesCanBeEnabled
VOID PowerSendIdlePowerEvent(__in FxPowerIdleEvents Event)
virtual WDF_DEVICE_PNP_STATE PnpEventCheckForDevicePresenceOverload(VOID)=0
static WDF_DEVICE_POWER_POLICY_STATE PowerPolWaitingUnarmedQueryIdle(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolTimerExpiredWakeCompletedPowerUpOtherStates[]
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSleepingWakeWakeArrivedOtherStates[]
static WDF_DEVICE_POWER_STATE PowerNotifyingD0EntryToWakeInterrupts(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolDevicePowerRequestFailedOtherStates[]
virtual VOID QueryForReenumerationInterface(VOID)=0
static _Must_inspect_result_ NTSTATUS _PnpStartDevice(__inout FxPkgPnp *This, __inout FxIrp *Irp)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolDisarmingWakeForSystemSleepCompletePowerUpOtherStates[]
NTSTATUS UpdateWmiInstanceForS0Idle(__in FxWmiInstanceAction Action)
BOOLEAN PowerMakeWakeRequestNonCancelable(__in NTSTATUS Status)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSleepingWakePowerDownFailedOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStartingPoweredUpFailed(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingDisarmWakeCancelWake(__inout FxPkgPnp *This)
VOID QueryForD3ColdInterface(VOID)
static WDF_DEVICE_PNP_STATE PnpEventInitStarting(__inout FxPkgPnp *This)
virtual VOID PowerDisableWakeAtBusOverload(VOID)
static const POWER_EVENT_TARGET_STATE m_WakePendingOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCapablePowerDownFailedWakeCanceled(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolWokeFromS0(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolCancelUsbSSOtherStates[]
static WDF_DEVICE_PNP_STATE PnpEventQueryRemovePending(__inout FxPkgPnp *This)
FxPowerPolicyMachine m_PowerPolicyMachine
BOOLEAN IsInSpecialUse(VOID)
static WDF_DEVICE_PNP_STATE PnpEventRestarting(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventPdoInitFailed(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCapableDxAllocFailed(__inout FxPkgPnp *This)
NTSTATUS CompletePnpRequest(__inout FxIrp *Irp, __in NTSTATUS Status)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceWakeTriggeredS0NP(__inout FxPkgPnp *This)
_Must_inspect_result_ NTSTATUS PnpReleaseHardware(VOID)
static const PNP_EVENT_TARGET_STATE m_PnpFailedPowerDownOtherStates[]
static _Must_inspect_result_ CPNOT_POWER_POLICY_OWNER_STATE_TABLE GetNotPowerPolicyOwnerTableEntry(__in WDF_DEVICE_POWER_POLICY_STATE State)
BYTE m_DeviceWake[DeviceWakeStates]
static WDF_DEVICE_POWER_STATE PowerDxStoppedDisarmWakeNP(__inout FxPkgPnp *This)
VOID SetDeviceFailed(__in WDF_DEVICE_FAILED_ACTION FailedAction)
static WDF_DEVICE_PNP_STATE PnpEventPdoRestart(__inout FxPkgPnp *This)
static DEVICE_POWER_STATE _GetPowerCapState(__in ULONG Index, __in ULONG State)
VOID PowerPolicySetS0IdleState(__in BOOLEAN State)
static WDF_DEVICE_PNP_STATE PnpEventPdoRemoved(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventEjectHardware(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolWakeFailedUsbSS(__inout FxPkgPnp *This)
FxPnpDeviceD0EntryPostInterruptsEnabled m_DeviceD0EntryPostInterruptsEnabled
static WDF_DEVICE_POWER_STATE PowerUpFailedDerefParent(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerD0BusWakeOwnerNP(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventStarted(__inout FxPkgPnp *This)
_Must_inspect_result_ NTSTATUS PnpPrepareHardwareInternal(VOID)
VOID SendEventToAllWakeInterrupts(__in enum FxWakeInterruptEvents WakeInterruptEvent)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceWakeInterruptFired(__inout FxPkgPnp *This)
VOID PowerPolicyEnterNewState(__in WDF_DEVICE_POWER_POLICY_STATE State)
static WDF_DEVICE_PNP_STATE PnpEventFailedOwnHardware(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceToD0CompletePowerUp(__inout FxPkgPnp *This)
virtual VOID FinishInitialize(__inout PWDFDEVICE_INIT DeviceInit)
ULONG m_WakeInterruptPendingAckCount
static WDF_DEVICE_PNP_STATE PnpEventFinal(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerNotifyingD0EntryToWakeInterruptsNP(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolTimerExpiredNoWakeOtherStates[]
virtual NTSTATUS SendIrpSynchronously(FxIrp *Irp)=0
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolStoppingOtherStates[]
FxCREvent m_CleanupEventUm
static WDF_DEVICE_POWER_STATE PowerDxStoppedDisarmWake(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventRemovingDisableInterfaces(__inout FxPkgPnp *This)
NTSTATUS PowerPolicySetSxWakeSettings(__in PWDF_DEVICE_POWER_POLICY_WAKE_SETTINGS Settings, __in BOOLEAN ArmForWakeIfChildrenAreArmedForWake, __in BOOLEAN IndicateChildWakeOnParentWake)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSleepingNoWakePowerDown(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemWakeDeviceWakeTriggeredS0NPOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStartedWakeCapableSleepingUsbSS(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSystemSleepNeedWakeOtherStates[]
PNP_DEVICE_STATE HandleQueryPnpDeviceState(__in PNP_DEVICE_STATE PnpDeviceState)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStartedIdleCapableCancelTimerForSleep(__inout FxPkgPnp *This)
static const POWER_EVENT_TARGET_STATE m_PowerDNotZeroOtherStates[]
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolWaitingArmedOtherStates[]
VOID PnpProcessEventInner(__inout FxPostProcessInfo *Info)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolCancelingWakeForSystemSleepWakeCanceled(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolIoPresentArmed(__inout FxPkgPnp *This)
_Must_inspect_result_ NTSTATUS HandleQueryInterface(__inout FxIrp *Irp, __out PBOOLEAN CompleteRequest)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolS0WakeCompletePowerUp(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingCancelUsbSS(__inout FxPkgPnp *This)
static const POWER_EVENT_TARGET_STATE m_PowerD0ArmedForWakeOtherStates[]
static _Must_inspect_result_ NTSTATUS _DispatchWaitWake(__inout FxPkgPnp *This, __inout FxIrp *Irp)
VOID AddDmaEnabler(__in FxDmaEnabler *Enabler)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingCancelTimer(__inout FxPkgPnp *This)
static _Must_inspect_result_ NTSTATUS _PnpDeviceUsageNotification(__inout FxPkgPnp *This, __inout FxIrp *Irp)
static WDF_DEVICE_POWER_STATE PowerReportPowerUpFailed(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventFdoRemoved(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolDisarmingWakeForSystemSleepCompletePowerUp(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolWaitingArmedIoPresentCancelUsbSS(__inout FxPkgPnp *This)
static const ULONG m_RestartCountMaximum
PFN_IO_CONNECT_INTERRUPT_EX m_IoConnectInterruptEx
static WDF_DEVICE_POWER_POLICY_STATE PowerPolS0NoWakeCompletePowerUp(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredWakeCapableUsbSS(__inout FxPkgPnp *This)
MdIrp m_PendingDevicePowerIrp
static WDF_DEVICE_POWER_STATE PowerEnablingWakeAtBus(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerDxDisablingWakeAtBus(__inout FxPkgPnp *This)
static WDF_DEVICE_PNP_STATE PnpEventSurpriseRemoveIoStarted(__inout FxPkgPnp *This)
virtual NTSTATUS FireAndForgetIrp(FxIrp *Irp)=0
BOOLEAN PnpIncrementRestartCountLogic(_In_ HANDLE RestartKey, _In_ BOOLEAN CreatedNewKey)
VOID PowerPolicyCheckAssumptions(VOID)
VOID PowerProcessEventInner(__inout FxPostProcessInfo *Info)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSleepingWakeRevertArmWake(__inout FxPkgPnp *This)
VOID PowerSendPowerUpEvents(VOID)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSleepingNoWakeCompletePowerDown(__inout FxPkgPnp *This)
_Must_inspect_result_ NTSTATUS PnpSurpriseRemoval(__inout FxIrp *Irp)
VOID SetChildBusInformation(__in PPNP_BUS_INFORMATION BusInformation)
virtual WDF_DEVICE_POWER_STATE PowerCheckDeviceTypeOverload(VOID)=0
static WDF_DEVICE_POWER_STATE PowerStartSelfManagedIoFailedNP(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStartedWakeCapable(__inout FxPkgPnp *This)
_Must_inspect_result_ NTSTATUS RegisterCallbacks(__in PWDF_PNPPOWER_EVENT_CALLBACKS DispatchTable)
static WDF_DEVICE_PNP_STATE PnpEventRestartHardwareAvailable(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolRestarting(__inout FxPkgPnp *This)
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolSleepingWakeRevertArmWakeOtherStates[]
static const POWER_POLICY_EVENT_TARGET_STATE m_PowerPolTimerExpiredWakeCapablePowerDownOtherStates[]
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingSendStatus(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolTimerExpiredNoWake(__inout FxPkgPnp *This)
D3COLD_SUPPORT_INTERFACE m_D3ColdInterface
static WDF_DEVICE_POWER_POLICY_STATE PowerPolStoppingSucceeded(__inout FxPkgPnp *This)
VOID WriteStateToRegistry(__in HANDLE RegKey, __in PUNICODE_STRING ValueName, __in ULONG Value)
static const PNP_EVENT_TARGET_STATE m_PnpRestartReleaseHardware[]
VOID DropD3ColdInterface(VOID)
FxPnpDeviceRelationsQuery m_DeviceRelationsQuery
static WDF_DEVICE_PNP_STATE PnpEventRemovedPdoWait(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerDxSurpriseRemovedPowerDown(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_STATE PowerDecideD0State(__inout FxPkgPnp *This)
static WDF_DEVICE_POWER_POLICY_STATE PowerPolSystemWakeDeviceWakeInterruptFiredNP(__inout FxPkgPnp *This)
static MdCompletionRoutineType _PowerPolicyWaitWakeCompletionRoutine
VOID PowerCheckAssumptions(VOID)
BOOLEAN m_SystemWokenByWakeInterrupt
VOID PnpPowerPolicyStop(VOID)
VOID PowerPolicyProcessEvent(__in FxPowerPolicyEvent Event, __in BOOLEAN ProcessEventOnDifferentThread=FALSE)
_Must_inspect_result_ NTSTATUS PowerReference(__in BOOLEAN WaitForD0, __in_opt PVOID Tag=NULL, __in_opt LONG Line=0, __in_opt PSTR File=NULL)
VOID IoDecrement(__in_opt PVOID Tag=NULL, __in_opt LONG Line=0, __in_opt PSTR File=NULL)
CHECK_RETURN_IF_USER_MODE NTSTATUS Initialize()
__inline NTSTATUS Initialize(VOID)
BOOLEAN UsingSystemManagedIdleTimeout(VOID)
#define NT_SUCCESS(StatCode)
NTSTATUS NTAPI CompleteRequest(IN PIRP Irp, IN NTSTATUS Status, IN ULONG_PTR Information)
#define __drv_arg(expr, annotes)
pDevice m_PkgPnp ClearRemovalDevicesList()
NTSTATUS(STDCALL * PFN_IO_DISCONNECT_INTERRUPT_EX)(__in PIO_DISCONNECT_INTERRUPT_PARAMETERS Parameters)
VOID(STDCALL * PFN_IO_REPORT_INTERRUPT_ACTIVE)(_In_ PIO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS Parameters)
VOID(STDCALL * PFN_IO_REPORT_INTERRUPT_INACTIVE)(_In_ PIO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS Parameters)
NTSTATUS(STDCALL * PFN_IO_CONNECT_INTERRUPT_EX)(__inout PIO_CONNECT_INTERRUPT_PARAMETERS Parameters)
@ NotifyResourcesExplicitPowerup
@ NotifyResourcesForceDisconnect
@ NotifyResourcesExplicitPowerDown
@ NotifyResourcesSurpriseRemoved
@ NotifyResourcesDisconnectInactive
@ NotifyResourcesArmedForWake
struct _POWER_THREAD_INTERFACE POWER_THREAD_INTERFACE
const UCHAR DeviceWakeStates
struct _POWER_THREAD_INTERFACE * PPOWER_THREAD_INTERFACE
VOID(* PFN_POWER_THREAD_ENQUEUE)(__in PVOID Context, __in PWORK_QUEUE_ITEM WorkItem)
_Must_inspect_result_ NTSTATUS(* PFN_PNP_POWER_CALLBACK)(__inout FxPkgPnp *This, __inout FxIrp *Irp)
@ FXDEVICE_CALLBACK_IN_PREPARE_HARDWARE
const UCHAR FxPowerPolicyEventQueueDepth
@ FxPowerDownTypeExplicit
@ FxPowerDownTypeImplicit
const UCHAR PnpEventQueueDepth
@ FxPnpStateResourcesChangedFalse
@ FxPnpCapSilentInstallFalse
@ FxPnpCapSilentInstallUseDefault
@ FxPnpStateResourcesChangedUseDefault
@ FxPnpStateNotDisableableTrue
@ FxPnpCapHardwareDisabledTrue
@ FxPnpCapSurpriseRemovalOKFalse
@ FxPnpStateDisabledUseDefault
@ FxPnpCapSilentInstallTrue
@ FxPnpCapLockSupportedMask
@ FxPnpCapSurpriseRemovalOKTrue
@ FxPnpCapHardwareDisabledUseDefault
@ FxPnpCapSurpriseRemovalOKUseDefault
@ FxPnpCapUniqueIDUseDefault
@ FxPnpCapEjectSupportedUseDefault
@ FxPnpStateNotDisableableUseDefault
@ FxPnpStateDontDisplayInUITrue
@ FxPnpStateNotDisableableMask
@ FxPnpStateDontDisplayInUIMask
@ FxPnpCapHardwareDisabledFalse
@ FxPnpCapLockSupportedUseDefault
@ FxPnpCapHardwareDisabledMask
@ FxPnpStateRemovedUseDefault
@ FxPnpCapNoDisplayInUIMask
@ FxPnpCapNoDisplayInUITrue
@ FxPnpStateResourcesChangedTrue
@ FxPnpStateDontDisplayInUIUseDefault
@ FxPnpStateFailedUseDefault
@ FxPnpCapSurpriseRemovalOKMask
@ FxPnpStateDisabledFalse
@ FxPnpCapEjectSupportedMask
@ FxPnpStateDontDisplayInUIFalse
@ FxPnpCapLockSupportedFalse
@ FxPnpStateResourcesChangedMask
@ FxPnpCapDockDeviceUseDefault
@ FxPnpCapDockDeviceFalse
@ FxPnpCapEjectSupportedFalse
@ FxPnpCapRemovableUseDefault
@ FxPnpCapLockSupportedTrue
@ FxPnpCapSilentInstallMask
@ FxPnpCapNoDisplayInUIFalse
@ FxPnpStateNotDisableableFalse
@ FxPnpCapNoDisplayInUIUseDefault
@ FxPnpCapEjectSupportedTrue
const UCHAR PowerEventQueueDepth
@ FxPowerCapWakeFromD0True
@ FxPowerCapWakeFromD3True
@ FxPowerCapWakeFromD0Mask
@ FxPowerCapWakeFromD0UseDefault
@ FxPowerCapWakeFromD3Mask
@ FxPowerCapWakeFromD0False
@ FxPowerCapWakeFromD1True
@ FxPowerCapWakeFromD1False
@ FxPowerCapDeviceD2False
@ FxPowerCapWakeFromD2True
@ FxPowerCapDeviceD2UseDefault
@ FxPowerCapWakeFromD3False
@ FxPowerCapWakeFromD2Mask
@ FxPowerCapWakeFromD2UseDefault
@ FxPowerCapDeviceD1UseDefault
@ FxPowerCapWakeFromD2False
@ FxPowerCapWakeFromD1UseDefault
@ FxPowerCapWakeFromD3UseDefault
@ FxPowerCapWakeFromD1Mask
@ FxPowerCapDeviceD1False
@ PnpEventChildrenRemovalComplete
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE Usage
REQUEST_POWER_COMPLETE MdRequestPowerCompleteType
WUDF_IO_COMPLETION_ROUTINE MdCompletionRoutineType
WUDF_DRIVER_CANCEL MdCancelRoutineType
#define _Must_inspect_result_
#define UNREFERENCED_PARAMETER(P)
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
_In_ UCHAR _In_ ULONG _Out_ PUCHAR _Outptr_result_bytebuffer_ OutBufferLength PVOID * OutBuffer
NTSTATUS Initialize(VOID)
_Releases_lock_(_Global_critical_region_) VOID ReleaseParentPowerStateLock(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
FxWaitLockTransactionedList m_ChildListList
FxWaitLockInternal m_PowerStateLock
FxEnumerationInfo(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
_Acquires_lock_(_Global_critical_region_) VOID AcquireParentPowerStateLock(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
BOOLEAN m_SetRemovedEvent
VOID Evaluate(__inout FxPkgPnp *PkgPnp)
FxPowerPolicyOwnerSettings * m_Owner
WakePolicySettings m_WakeSettings
FxPowerIdleMachine m_PowerIdleMachine
BOOLEAN m_ChildrenCanPowerUp
IdlePolicySettings m_IdleSettings
ULONG m_ChildrenPoweredOnCount
IdleTimeoutManagement m_TimeoutMgmt
BOOLEAN WakeFromS0Capable
WDF_DEVICE_POWER_POLICY_STATE CurrentTargetState
BOOLEAN m_ExtendWatchDogTimer
BOOLEAN IndicateChildWakeOnParentWake
PFN_POWER_THREAD_ENQUEUE PowerThreadEnqueue
#define RtlCopyMemory(Destination, Source, Length)
WDF_TRI_STATE ResourcesChanged
WDF_TRI_STATE SilentInstall
WDF_TRI_STATE HardwareDisabled
WDF_TRI_STATE NotDisableable
WDF_TRI_STATE LockSupported
struct FxPnpStateAndCaps::@4820 ByEnum
WDF_TRI_STATE EjectSupported
WDF_TRI_STATE NoDisplayInUI
WDF_TRI_STATE DontDisplayInUI
WDF_TRI_STATE SurpriseRemovalOK
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
_Must_inspect_result_ _In_ WDFDEVICE Device
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PWDFDEVICE_INIT DeviceInit
@ WdfDevStatePnpObjectCreated
_In_ PWDFDEVICE_INIT _In_ BOOLEAN IsPowerPolicyOwner
_In_ WDFDEVICE _Out_ PWDF_DEVICE_STATE DeviceState
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
enum _WDF_SPECIAL_FILE_TYPE WDF_SPECIAL_FILE_TYPE
FORCEINLINE ULONG WdfDevStateNormalize(_In_ ULONG State)
@ WdfReleaseHardwareOrderOnFailureEarly
enum _WDF_POWER_DEVICE_STATE WDF_POWER_DEVICE_STATE
enum _WDF_DEVICE_POWER_STATE WDF_DEVICE_POWER_STATE
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_POWER_POLICY_IDLE_SETTINGS Settings
@ WdfSpecialFileHibernation
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN WaitForD0
_In_ WDFDEVICE _In_ WDF_SPECIAL_FILE_TYPE FileType
_In_ WDFDEVICE _In_ WDF_DEVICE_FAILED_ACTION FailedAction
enum _WDF_DEVICE_POWER_POLICY_STATE WDF_DEVICE_POWER_POLICY_STATE
_Must_inspect_result_ _In_ WDFDEVICE _In_ NTSTATUS WaitWakeStatus
_Must_inspect_result_ _In_ WDFDEVICE _In_ PDEVICE_OBJECT DependentDevice
_In_ WDFDEVICE _In_ PWDF_DEVICE_PNP_CAPABILITIES PnpCapabilities
enum _WDF_DEVICE_PNP_STATE WDF_DEVICE_PNP_STATE
_In_ WDFDEVICE _In_ PWDF_DEVICE_POWER_CAPABILITIES PowerCapabilities
_In_ WDFDEVICE _In_ PPNP_BUS_INFORMATION BusInformation
enum _WDF_DEVICE_FAILED_ACTION WDF_DEVICE_FAILED_ACTION
@ WdfDevStatePwrPolObjectCreated
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_POWER_FRAMEWORK_SETTINGS PowerFrameworkSettings
@ WdfDevStatePowerObjectCreated
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG Configuration
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
_In_ PWDFDEVICE_INIT _In_ PWDF_PDO_EVENT_CALLBACKS DispatchTable
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_Must_inspect_result_ _In_ WDFCMRESLIST List
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
enum _WDF_TRI_STATE WDF_TRI_STATE
_In_ ULONG _Out_ PULONG BufferUsed
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFWMIINSTANCE * Instance
_Must_inspect_result_ _In_ PWDF_WORKITEM_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWORKITEM * WorkItem
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH * Dispatch
_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
enum _DEVICE_USAGE_NOTIFICATION_TYPE DEVICE_USAGE_NOTIFICATION_TYPE
@ DeviceUsageTypeHibernation
@ DeviceUsageTypeDumpFile
_Out_opt_ PBOOLEAN CurrentState