PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK回呼函式 (wdm.h)
ComponentIdleConditionCallback 回呼例程會通知驅動程式指定的元件已完成從使用中條件轉換為閑置條件的轉換。
語法
PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK PoFxComponentIdleConditionCallback;
void PoFxComponentIdleConditionCallback(
[in] PVOID Context,
[in] ULONG Component
)
{...}
參數
[in] Context
裝置內容的指標。 設備驅動器會使用此內容來儲存裝置目前電源狀態的相關信息。 設備驅動器在 DeviceCon text 中指定此指標,PO_FX_DEVICE 結構的成員,驅動程式用來向電源管理架構 (PoFx) 註冊裝置。 此內容與PoFx不透明。
[in] Component
識別元件的索引。 此參數是裝置驅動程式用來向PoFx註冊裝置之 PO_FX_DEVICE 結構中 Components 陣列中的索引。 如果 元件 數位件包含 N 個元素,元件索引的範圍從 0 到 N–1。
傳回值
沒有
言論
當驅動程式不再需要存取作用中條件中的元件時,驅動程式應該呼叫 PoFxIdleComponent 例程,將元件切換至閑置條件。 為了回應 PoFxIdleComponent 呼叫,PoFx 會起始轉換至閑置條件,然後呼叫 ComponentIdleConditionCallback 例程,以在完成此轉換時通知驅動程式。
驅動程式必須呼叫 PoFxCompleteIdleCondition,以回應每個 ComponentIdleConditionCallback 回呼。 PoFxCompleteIdleCondition 呼叫可以在 ComponentIdleConditionCallback 回呼期間或回呼傳回之後發生。 驅動程式應該完成任何需要存取硬體元件的工作,才能呼叫 PoFxCompleteIdleCondition。 在此呼叫之後,元件可能不會保持在 F0 電源狀態。
只有在元件處於使用中狀態時,才能安全地存取元件。 請勿依賴元件的 Fx 電源狀態來判斷是否可以存取元件。 如果元件處於 F0 狀態且處於閑置狀態,元件可能即將切換到另一個 Fx 狀態。
例子
若要定義 ComponentIdleConditionCallback 回呼例程,您必須先提供函式宣告,以識別您要定義的回呼例程類型。 Windows 提供一組驅動程式的回呼函式類型。 使用回呼函式類型宣告函式有助於 驅動程式的程式代碼分析、靜態驅動程式驗證器 (SDV)和其他驗證工具尋找錯誤,而且是撰寫 Windows作系統驅動程式的需求。
例如,若要定義名為 MyComponentIdleConditionCallback
的 ComponentIdleConditionCallback 回呼例程,請使用PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK類型,如下列程式代碼範例所示:
PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK MyComponentIdleConditionCallback;
然後,實作回呼例程,如下所示:
_Use_decl_annotations_
VOID
MyComponentIdleConditionCallback(
PVOID Context,
ULONG Component
)
{
// Function body
}
PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK函式類型定義於 Wdm.h 頭檔中。 若要在執行程式代碼分析工具時更準確地識別錯誤,請務必將 _Use_decl_annotations_
批註新增至函式定義。
_Use_decl_annotations_
批注可確保在頭檔中套用至PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK函式類型的批注。 如需函式宣告需求的詳細資訊,請參閱 使用 WDM 驅動程式的函式角色類型來宣告函式。 如需 _Use_decl_annotations_
的相關信息,請參閱 批注函式行為。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始支援。 |
目標平臺 | 桌面 |
標頭 | wdm.h (包括 Wudfwdm.h) |
IRQL | 在 IRQL <= DISPATCH_LEVEL 呼叫。 |