PO_FX_COMPONENT_V2 結構 (wdm.h)

PO_FX_COMPONENT 結構描述裝置中元件的電源狀態屬性。

語法

typedef struct _PO_FX_COMPONENT_V2 {
  GUID                        Id;
  ULONGLONG                   Flags;
  ULONG                       DeepestWakeableIdleState;
  ULONG                       IdleStateCount;
  PPO_FX_COMPONENT_IDLE_STATE IdleStates;
  ULONG                       ProviderCount;
  PULONG                      Providers;
} PO_FX_COMPONENT_V2, *PPO_FX_COMPONENT_V2;

成員

Id

元件標識碼,可唯一識別此元件與裝置中的其他元件有關。 如果電源管理架構 (PoFx) 需要元件標識碼來區別此元件與相同裝置中的其他類似元件,驅動程式應該為此成員指定非零值。 這個成員是選擇性的。 如果未使用此成員,則必須將它設定為所有零。

Flags

這個成員可以設定為下列旗標位: PO_FX_COMPONENT_FLAG_F0_ON_DX。 如需詳細資訊,請參閱<備註>。

DeepestWakeableIdleState

元件可以從中喚醒的最深層 Fx 狀態索引。 針對 F0 指定 0,F1 則指定 1,依此類傳。 此索引必須小於 IdleStateCount

IdleStateCount

IdleStates 成員所指向之數位中的元素數目。 此外,此成員會指定元件支援的 Fx 電源狀態數目。 元件必須支援至少一個 Fx 狀態, (F0) 。

IdleStates

PO_FX_COMPONENT_IDLE_STATE陣列的指標。 這個陣列的長度是由 IdleStateCount 成員所指定。 每個數位元素都會指定元件所支援 Fx 電源狀態的屬性。 元素 0 描述 F0、元素 1 描述 F1 等等。

ProviderCount

值,指定此元件相依的元件數目。 如需詳細資訊,請參閱下的 元件相依性

Providers

此元件所依賴之元件索引數位的指標。 如需詳細資訊,請參閱下的 元件相依性

備註

當裝置驅動程式向PoFx註冊裝置時,驅動程式會提供保存註冊資訊的 PO_FX_DEVICE 結構。 這個結構包含 PO_FX_COMPONENT 結構的數位。 此陣列中的元素描述裝置中個別元件的電源屬性。 PoFx 會使用此數位資訊來管理這些元件的電源設定。

Id 成員包含PoFx可用來唯一識別元件的元件標識碼。 請勿將元件標識碼與元件索引混淆, PoFxActivateComponent 之類的例程會用來識別已註冊裝置中的元件。 元件索引是裝置驅動程式用來向PoFx註冊裝置之PO_FX_DEVICE結構中 Components 陣列的索引。 如果 Components 陣列包含 N 個元素,則元件索引是範圍 0 到 N–1 中的整數值。 相反地,元件標識碼是 GUID 值。

如果驅動程式在向 PoFx 註冊期間指定PO_FX_VERSION_V2支援,也就是在呼叫 Po (FxRegisterDevice 例程期間,驅動程式會指定PO_FX_VERSION_V2傳遞至 Device 參數之 PO_FX_DEVICE 結構版本成員的值PO_FX_VERSION_V2) 。 PO_FX_COMPONENT_FLAG_F0_ON_DX 如果指定 PO_FX_COMPONENT_FLAG_F0_ON_DX 旗標,PoFx 會在 Dx 轉換期間將元件放入 F0 電源狀態,以及等候/喚醒 IRP。 在將 Dx IRP 或等候/喚醒 IRP 分派至裝置堆疊之前, (第一次發生哪一個事件) ,電源管理員會將元件轉換成 F0 狀態。 元件會保留在 F0 中,直到喚醒/等候 IRP 取消或完成,或 Dx IRP 已完成,且驅動程式已呼叫 PoFxReportDevicePoweredOn 例程, (最後發生任何事件) 。

元件相依性

PoFx 支援裝置內的邏輯元件相依性 (,但不支援跨不同裝置) 。 在每個元件的裝置註冊期間,驅動程式可以提供一個號碼 (ProviderCount 成員) ,以及元件索引數位, (此元件) 此元件) 此元件相依的 提供者 成員數位;這些稱為 提供者。 PoFx 保證元件在所有提供者都處於作用中狀態之前都不會變成作用中。

元件相依性形成導向圖形,其中邊緣指向相依元件到提供者,並代表相依性。 在裝置註冊期間,PoFx 會驗證相依性圖形:不允許迴圈和重複邊緣,而且深度優先搜尋周遊的圖表深度不能超過四個。 PoFx 也會根據相依性圖表設定元件的使用中參考計數;也就是說,每個提供者的作用中參考計數會針對相依的每個元件遞增一次。

在元件啟用期間,PoFx 會先以異步方式啟動所有提供者。 元件作用中之後,PoFx 會檢查每個相依元件,並視需要繼續啟用。

當元件轉換為閑置狀態時,PoFx 會先讓相依元件閑置。 驅動程式完成 ComponentIdleConditionCallback 和平臺延伸模組外掛程式 (PEP) 收到閑置的通知後,PoFx 會以遞歸方式周游廣度優先周遊和異步閑置每個提供者中的相依性圖形。

規格需求

需求
最低支援的用戶端 從 Windows 8 開始支援。
標頭 wdm.h (包括 Wudfwdm.h)

另請參閱

元件層級電源管理

PO_FX_COMPONENT_IDLE_STATE

PO_FX_DEVICE