PPM 電源控制程式碼

本主題所述的電源控制程式代碼是由平臺擴充功能外掛程式 (PEP) 使用。 電源控制要求類似於IOCTL) IOCTL (I/O 控制要求。 不過,不同於 IOCTL,電源控制要求會直接傳送至 Windows 電源管理架構, (PoFx) ,而且不會由裝置堆疊中的其他設備驅動器觀察到。

以下是 PPM 電源控制程式代碼:

程式碼 語法 描述
PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE

{38BD8901-AB20-4908-ABAA-AC34674BDFF3}

DEFINE_GUID (PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE,

0x38bd8901、0xab20、0x4908、0xab、0xaa、0xac、0x34、0x67、0x4b、0xdf、0xf3) ;

PEP 會使用程式代碼來查詢 Windows 電源管理架構, (PoFx) ,以取得指派給處理器的停駐頁面相關信息。

若要判斷處理器的停駐頁面,此處理器的平臺擴充功能外掛程式 (PEP) 會將PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE電源控制要求提交至 PoFx。

為了起始此電源控制要求,PEP 會先呼叫 RequestWorker 例程,通知 PoFx PEP 有要提交的工作專案。 PoFx 會藉由將PEP_DPM_WORK通知傳送至 PEP 來回應此呼叫。 PEP 會藉由提交電源控制工作要求來回應停駐頁面資訊。 此要求包含 PEP 配置的PEP_WORK_INFORMATION結構,其中 WorkType 成員設定為 PepWorkRequestPowerControl,而 PowerControl 成員會指向 PEP 配置的PEP_WORK_POWER_CONTROL結構。 PEP_WORK_POWER_CONTROL 結構的PowerControlCode成員會設定為 PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE。 這個結構的 InBuffer 成員必須是 NULL,OutBuffer 成員必須指向 PEP 配置的PEP_PPM_CONTEXT_QUERY_PARKING_PAGE結構。 為了回應此電源控制要求,PoFx 會將停駐頁面的虛擬和實體位址寫入PEP_PPM_CONTEXT_QUERY_PARKING_PAGE結構。

PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE電源控制要求是 Arm 特定的,且 x86 和 x64 處理器不支援。 在 Arm 多處理器系統中,駐留頁面是操作系統用來作為信箱的 4 KB 記憶體區塊,可控制從閑置狀態啟動的處理器。 PEP 可能會使用信箱的某些部分來儲存處理器特定內容數據。 如需詳細資訊,請參閱 上的標題為「Arm 平臺的多處理器啟動」 https://www.acpica.org/related-documents檔。

GUID_PPM_PERF_CONSTRAINT_CHANGE

{29181FA1-4BF3-4c2e-B314-A6D226322B00}

DEFINE_GUID (GUID_PPM_PERF_CONSTRAINT_CHANGE,

0x29181fa1、0x4bf3、0x4c2e、0xb3、0x14、0xa6、0xd2、0x26、0x32、0x2b、0x0) ;

PEP 會使用程式代碼來通知 Windows 電源管理架構 (PoFx) 處理器的效能限制必須變更,以配合 (電源預算、熱條件約束、電源來源等) 。

此控制程式代碼不會使用任何輸入或輸出緩衝區。

為了起始此電源控制要求,PEP 會先呼叫 RequestWorker 例程,通知 PoFx PEP 有要提交的工作專案。 PoFx 會藉由將PEP_DPM_WORK通知傳送至 PEP 來回應此呼叫。 PEP 會藉由提交電源控制工作要求來回應效能條件約束變更。 此要求包含 PEP 配置的PEP_WORK_INFORMATION結構,其中 WorkType 成員設定為 PepWorkRequestPowerControl,而 PowerControl 成員會指向 PEP 配置的PEP_WORK_POWER_CONTROL結構。 PEP_WORK_POWER_CONTROL 結構的PowerControlCode成員會設定為 GUID_PPM_PERF_CONSTRAINT_CHANGE。 這個結構的 InBuffer 和 OutBuffer 成員都必須是 NULL。 為了回應此電源控制要求,PoFx 會將PEP_NOTIFY_PPM_PERF_CONSTRAINTS通知傳送給 PEP,以取得新的處理器效能限制。