PO_FX_DEVICE_POWER_REQUIRED_CALLBACK回呼函式 (wdm.h)
DevicePowerRequiredCallback 回呼例程會通知裝置驅動程式裝置必須進入並維持在 D0 電源狀態。
語法
PO_FX_DEVICE_POWER_REQUIRED_CALLBACK PoFxDevicePowerRequiredCallback;
void PoFxDevicePowerRequiredCallback(
[in] PVOID Context
)
{...}
參數
[in] Context
裝置內容的指標。 設備驅動器會使用此內容來儲存裝置目前電源狀態的相關信息。 設備驅動器在 DeviceCon text 中指定此指標,PO_FX_DEVICE 結構的成員,驅動程式用來向電源管理架構 (PoFx) 註冊裝置。 此內容與PoFx不透明。
傳回值
沒有
言論
在 PoFx 呼叫驅動程式的 DevicePowerRequiredCallback 例程之後,如果裝置尚未處於 D0 狀態,則驅動程式必須藉由將 D0 IRP (IRP_MN_SET_POWER 要求)傳送至 D0 狀態,以起始轉換至 D0 狀態。 驅動程式完成此要求的處理之後,驅動程式必須呼叫 PoFxReportDevicePoweredOn 例程。 PoFxReportDevicePoweredOn 呼叫會通知 PoFx 裝置已完成對 DevicePowerRequiredCallback 呼叫的回應。 驅動程式可以在呼叫 DevicePowerRequiredCallback 期間或之後呼叫 PoFxReportDevicePoweredOn。
每次呼叫 DevicePowerRequiredCallback 例程時,驅動程式都必須呼叫 PoFxReportDevicePoweredOn來回應。 PoFxReportDevicePoweredOn 呼叫可能會發生在 DevicePowerRequiredCallback 呼叫期間或之後。 驅動程式必須呼叫 PoFxReportDevicePoweredOn,不論是否需要 D0 IRP、D0 IRP 要求失敗,或分派的 D0 IRP 成功或失敗。
只有在 PoFx 先前呼叫驅動程式的 DevicePowerNotRequiredCallback 例程時,PoFx 才會呼叫 DevicePowerRequiredCallback 例程,通知驅動程式裝置不需要維持 D0 狀態。
在驅動程式呼叫 PoFxCompleteDevicePowerNotRequired 以完成 DevicePowerNotRequiredCallback 回呼之後,您可以隨時呼叫 DevicePowerRequiredCallback 例程。 DevicePowerRequiredCallback 呼叫不一定因為驅動程式所採取的動作而發生,例如要求元件變更為使用中條件。
例子
若要定義 DevicePowerRequiredCallback 回呼例程,您必須先提供函式宣告,以識別您要定義的回呼例程類型。 Windows 提供一組驅動程式的回呼函式類型。 使用回呼函式類型宣告函式有助於 驅動程式的程式代碼分析、靜態驅動程式驗證器 (SDV)和其他驗證工具尋找錯誤,而且是撰寫 Windows作系統驅動程式的需求。
例如,若要定義名為 MyDevicePowerRequiredCallback
的 DevicePowerRequiredCallback 回呼例程,請使用 PO_FX_DEVICE_POWER_REQUIRED_CALLBACK 類型,如下列程式代碼範例所示:
PO_FX_DEVICE_POWER_REQUIRED_CALLBACK MyDevicePowerRequiredCallback;
然後,實作回呼例程,如下所示:
_Use_decl_annotations_
VOID
MyDevicePowerRequiredCallback(
PVOID Context
)
{
// Function body
}
PO_FX_DEVICE_POWER_REQUIRED_CALLBACK函式類型定義於 Wdm.h 頭檔中。 若要在執行程式代碼分析工具時更準確地識別錯誤,請務必將 _Use_decl_annotations_
批註新增至函式定義。
_Use_decl_annotations_
批注可確保在頭檔中套用至PO_FX_DEVICE_POWER_REQUIRED_CALLBACK函式類型的批注。 如需函式宣告需求的詳細資訊,請參閱 使用 WDM 驅動程式的函式角色類型來宣告函式。 如需 _Use_decl_annotations_
的相關信息,請參閱 批注函式行為。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始支援。 |
目標平臺 | 桌面 |
標頭 | wdm.h (包括 Wudfwdm.h) |
IRQL | 在 IRQL <= DISPATCH_LEVEL 呼叫。 |
另請參閱
DevicePowerNotRequiredCallback