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) |