WDM设备电源状态
2023-10-09
26
0
Windows电源管理相关编程
WDM的电源状态包括设备电源状态和系统电源状态。在头文件中分别定义如下:
设备电源状态
typedef enum _DEVICE_POWER_STATE {
PowerDeviceUnspecified = 0,
PowerDeviceD0,
PowerDeviceD1,
PowerDeviceD2,
PowerDeviceD3,
PowerDeviceMaximum
} DEVICE_POWER_STATE, *PDEVICE_POWER_STATE;
系统电源状态
typedef enum _SYSTEM_POWER_STATE {
PowerSystemUnspecified = 0,
PowerSystemWorking = 1,
PowerSystemSleeping1 = 2,
PowerSystemSleeping2 = 3,
PowerSystemSleeping3 = 4,
PowerSystemHibernate = 5,
PowerSystemShutdown = 6,
PowerSystemMaximum = 7
} SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE;
电源状态的初始化
一个设备FDO在创建后,应在其扩展单元结构体中随时跟踪记录设备和系统的电源状态,以实现不同的设备状态转换。
但设备在初始化时即AddDevice中IoCreateDevice后,电源状态应初始化:
pdx->DevicePowerState = PowerDeviceUnspecified;
pdx->SystemPowerState = PowerSystemWorking;