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)

另请参阅

IRP_MN_QUERY_POWER

KSDEVICE_DISPATCH