共用方式為


PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK回呼函式 (wdm.h)

ComponentActiveConditionCallback 回呼例程會通知驅動程式指定的元件已完成從閑置條件轉換為使用中條件的轉換。

語法

PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK PoFxComponentActiveConditionCallback;

void PoFxComponentActiveConditionCallback(
  [in] PVOID Context,
  [in] ULONG Component
)
{...}

參數

[in] Context

裝置內容的指標。 設備驅動器會使用此內容來儲存裝置目前電源狀態的相關信息。 設備驅動器會在PO_FX_DEVICE結構的DeviceContext 成員中指定此指標,該PO_FX_DEVICE驅動程式用來向電源管理架構註冊裝置 (PoFx) 。 此內容與PoFx不透明。

[in] Component

指定識別元件的索引。 此參數是裝置驅動程式用來向PoFx註冊裝置之PO_FX_DEVICE結構中 Components 陣列的索引。 如果 Components 陣列包含 N 個元素,元件索引的範圍從 0 到 N–1。

傳回值

備註

只有在元件處於使用中狀況時,才能存取元件的硬體緩存器。 請勿依賴元件的 Fx 電源狀態來判斷是否可以存取元件。 如果元件處於 F0 狀態且處於閑置狀態,則元件可能即將切換到另一個 Fx 狀態。

若要存取處於閑置條件的元件,驅動程式可以呼叫 PoFxActivateComponent 例程,將元件切換至使用中條件。 如果 呼叫 PoFxActivateComponent 時元件尚未處於作用中條件,則 PoFx 會起始轉換至使用中條件,然後呼叫 ComponentActiveConditionCallback 例程,以在轉換完成時通知驅動程式。

無論驅動程式是否呼叫 PoFxActivateComponent 來起始轉換,驅動程式都會收到 ComponentActiveConditionCallback 回呼。 例如,Windows 核心可能會代表驅動程式啟動元件,再將 隨插即用 IRP系統設定的 IRP 傳送至驅動程式。

範例

若要定義 ComponentActiveConditionCallback 回 呼例程,您必須先提供函式宣告來識別您要定義的回呼例程類型。 Windows 提供一組驅動程式的回呼函式類型。 使用回呼函式類型宣告函式有助於 驅動程式的程式代碼分析靜態驅動程式驗證器 (SDV) ,以及其他驗證工具會尋找錯誤,而且這是撰寫 Windows 操作系統驅動程式的需求。

例如,若要定義名為 MyComponentActiveConditionCallbackComponentActiveConditionCallback 回呼例程,請使用 PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK 類型,如下列程式代碼範例所示:

PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK MyComponentActiveConditionCallback;

然後,實作回呼例程,如下所示:

_Use_decl_annotations_
VOID
  MyComponentActiveConditionCallback(
    PVOID Context,
    ULONG Component
    )
  {
      // Function body
  }

PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK函式類型定義於 Wdm.h 頭檔中。 若要在執行程式代碼分析工具時更精確地識別錯誤,請務必將 _Use_decl_annotations_ 註釋新增至函式定義。 批 _Use_decl_annotations_ 注可確保在頭檔中套用至PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK函式類型的批注。 如需函式宣告需求的詳細資訊,請參閱 使用WDM驅動程式的函式角色類型來宣告函式。 如需 的相關信息 _Use_decl_annotations_,請參閱 標註函式行為

規格需求

需求
最低支援的用戶端 從 Windows 8 開始支援。
目標平台 桌面
標頭 wdm.h (包括 Wudfwdm.h)
IRQL 在 IRQL <= DISPATCH_LEVEL呼叫。

另請參閱

PO_FX_DEVICE

PoFxActivateComponent