PFNKSDEVICEQUERYPOWER 回呼函式 (ks.h)

AVStream 會在收到IRP_MN_QUERY_POWER要求時呼叫 minidriver 的 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。 驅動程式應該準備好處理這些情況。

minidriver 會在其KSDEVICE_DISPATCH結構的 QueryPower 成員中指定這個例程的位址。

此例程是選擇性的。

規格需求

需求
最低支援的用戶端 適用於 Microsoft Windows XP 和更新版本的作業系統和 DirectX 8.0 和更新版本的 DirectX。
目標平台 桌面
標頭 ks.h (包含 Ks.h)

另請參閱

IRP_MN_QUERY_POWER

KSDEVICE_DISPATCH