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