PFNKSDEVICEQUERYPOWER 回调函数 (ks.h)
AVStream 在收到 IRP_MN_QUERY_POWER 请求时调用微型驱动程序的 AVStrMiniDeviceQueryPower 例程。
语法
PFNKSDEVICEQUERYPOWER Pfnksdevicequerypower;
NTSTATUS Pfnksdevicequerypower(
[in] PKSDEVICE Device,
[in] PIRP Irp,
[in] DEVICE_POWER_STATE DeviceTo,
[in] DEVICE_POWER_STATE DeviceFrom,
[in] SYSTEM_POWER_STATE SystemTo,
[in] SYSTEM_POWER_STATE SystemFrom,
[in] POWER_ACTION Action
)
{...}
参数
[in] Device
指向调度 IRP_MN_QUERY_POWER的 KSDEVICE 结构的指针。
[in] Irp
指向 设备颁发的 IRP_MN_QUERY_POWER 的指针。
[in] DeviceTo
Irp颁发者请求的电源状态。
[in] DeviceFrom
当前设备电源状态。
[in] SystemTo
要转换到的系统状态,在查询系统电源状态转换时指定。 如果调用是由于设备电源状态更改查询导致的,则此值未指定。
[in] SystemFrom
当前系统状态,在查询系统电源状态转换时指定。 如果调用是由于设备电源状态更改查询导致的,则此值未指定。
[in] Action
指定有关请求的转换的其他信息。 可能的值是POWER_ACTION类型的枚举器。
返回值
应返回STATUS_SUCCESS或尝试执行作时返回的错误代码。 通过返回STATUS_SUCCESS,驱动程序保证它不会启动任何将更改其设置请求电源状态的作。 驱动程序应将需要此类作的任何 IRP 排队,直到它完成将设备返回到可接受的电源状态的 IRP_MN_SET_POWER。
言论
电源管理器或设备电源策略所有者发送 IRP_MN_QUERY_POWER 请求,以确定它可以更改系统或设备电源状态(例如,进入睡眠状态)。
如果驱动程序因系统电源状态的IRP_MN_QUERY_POWER请求失败,电源管理器通常会通过发出 IRP_MN_SET_POWER来响应。 通常,此 IRP 将重申当前的系统状态。 但是,驱动程序可能会收到对查询状态或其他一些中间状态的IRP_MN_SET_POWER。 驱动程序应准备好处理这些情况。
微型驱动程序在其 KSDEVICE_DISPATCH 结构的 QueryPower 成员中指定此例程的地址。
此例程是可选的。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Microsoft Windows XP 及更高版本的作系统以及 DirectX 8.0 及更高版本的 DirectX 版本中提供。 |
目标平台 | 桌面 |
标头 | ks.h (包括 Ks.h) |