電源原則擁有權
針對每個裝置,一個 (,且只有一個裝置驅動程式的) 必須是裝置的 電源原則擁有者。 電源原則擁有者會決定裝置的適當 裝置電源狀態 ,並在裝置的電源狀態應該變更時,將要求傳送至裝置的驅動程式堆疊。
架構型驅動程式不包含要求裝置電源狀態變更的程式碼,因為架構會提供該程式碼。 根據預設,每當系統進入 系統睡眠狀態時,架構會要求驅動程式提供裝置的匯流排,以將裝置電源狀態降低至 D3。 (您的驅動程式可以變更預設行為,讓架構將裝置的睡眠狀態設定為 D1 或 D2,如果裝置提供喚醒功能。) 當系統電源回到其 運作 (S0) 狀態時,架構會要求匯流排驅動程式將裝置還原到其運作 (D0) 狀態。
電源原則擁有者也負責啟用和停用下列裝置功能:
當裝置處於閒置狀態且系統維持在其運作 (S0) 狀態時,裝置能夠進入低電源 (睡眠) 狀態
當裝置偵測到外來事件時,裝置能夠從睡眠狀態喚醒自己
當裝置偵測到外來事件時,裝置能夠從系統睡眠狀態喚醒整個系統
如果您的裝置支援這些閒置電源關閉和系統喚醒功能,電源原則擁有者也可以呼叫 WdfDeviceInitSetPowerPolicyEventCallbacks 來註冊一組電源原則事件回呼函式。
根據預設,針對架構型驅動程式,裝置的函式驅動程式是電源原則擁有者。 (如果沒有函式驅動程式,而且匯流排驅動程式已呼叫 WdfPdoInitAssignRawDevice,則匯流排驅動程式是電源原則擁有者) 。 如果您想要變更驅動程式堆疊的電源原則擁有者,預設電源原則擁有者必須呼叫 WdfDeviceInitSetPowerPolicyOwnership 以停用擁有權,而將成為電源原則擁有者的驅動程式必須呼叫 WdfDeviceInitSetPowerPolicyOwnership 才能啟用擁有權。
架構會針對電源原則擁有者執行下列工作:
它會處理驅動程式與驅動程式堆疊其餘部分之間的所有電源原則通訊。 例如,您的驅動程式不需要要求匯流排驅動程式變更裝置的電源狀態,因為架構會提出要求。
如果您的驅動程式註冊電源原則事件回呼函式,架構會在啟用或停用裝置從低電量狀態喚醒本身的能力時呼叫它們。
如果您的驅動程式允許使用者修改閒置和喚醒設定,架構會以裝置管理員顯示的屬性工作表頁面形式提供使用者介面。
如需電源原則擁有者責任的詳細資訊,請參閱下列主題: