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_POWERKSDEVICE 结构的指针。

[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