PPM-Energiesteuerungscodes

Die in diesem Thema beschriebenen Energiesteuerungscodes werden von Plattformerweiterungs-Plug-Ins (PEPs) verwendet. Eine Energiesteuerungsanforderung ähnelt einer E/A-Steuerungsanforderung (IOCTL). Im Gegensatz zu einem IOCTL wird eine Energiesteuerungsanforderung jedoch direkt an das Windows Power Management Framework (PoFx) gesendet und von anderen Gerätetreibern im Gerätestapel nicht beobachtet.

Im Folgenden sind die PPM-Energiesteuerungscodes aufgeführt:

Code Syntax BESCHREIBUNG
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);

Code wird vom PEP verwendet, um das Windows Power Management Framework (PoFx) nach Informationen zur Parkseite abzufragen, die einem Prozessor zugewiesen ist.

Um die Parkseite für einen Prozessor zu ermitteln, sendet das Plattformerweiterungs-Plug-In (PEP) für diesen Prozessor eine PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE Energiesteuerungsanforderung an PoFx.

Um diese Energiesteuerungsanforderung zu initiieren, ruft PEP zuerst die RequestWorker-Routine auf, um PoFx darüber zu informieren, dass das PEP über ein zu übermittelnde Arbeitselement verfügt. PoFx antwortet auf diesen Anruf, indem eine PEP_DPM_WORK Benachrichtigung an das PEP gesendet wird. Der PEP antwortet, indem er eine Arbeitsanforderung für die Energiesteuerung für die Informationen zur Parkseite sendet. Diese Anforderung umfasst eine PEP-zugeordnete PEP_WORK_INFORMATION-Struktur, in der das WorkType-Element auf PepWorkRequestPowerControl festgelegt ist, und das PowerControl-Element auf eine PEP-zugeordnete PEP_WORK_POWER_CONTROL-Struktur verweist. Das PowerControlCode-Element der PEP_WORK_POWER_CONTROL-Struktur ist auf PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE festgelegt. Das InBuffer-Element dieser Struktur muss NULL sein, und das OutBuffer-Element muss auf eine PEP-zugeordnete PEP_PPM_CONTEXT_QUERY_PARKING_PAGE-Struktur verweisen. Als Antwort auf diese Energiesteuerungsanforderung schreibt PoFx die virtuellen und physischen Adressen der Parkseite in die PEP_PPM_CONTEXT_QUERY_PARKING_PAGE-Struktur.

Die PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE Energiesteuerungsanforderung ist Arm-spezifisch und wird für x86- und x64-Prozessoren nicht unterstützt. In einem Arm-Multiprozessorsystem ist eine Parkseite ein 4-KB-Speicherblock, den das Betriebssystem als Postfach verwendet, um einen Prozessor zu steuern, der aus einem Leerlaufzustand gestartet wird. Ein PEP kann einen Teil des Postfachs verwenden, um prozessorspezifische Kontextdaten zu speichern. Weitere Informationen finden Sie im Dokument mit dem Titel "Multiprocessor Startup for Arm Platforms" unter 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);

Code wird vom PEP verwendet, um das Windows Power Management Framework (PoFx) darüber zu benachrichtigen, dass sich die Leistungsgrenzwerte des Prozessors ändern müssen, um externe Einschränkungen (Energiebudgetierung, thermische Einschränkungen, Energiequelle usw.) zu berücksichtigen.

Mit diesem Steuerelementcode wird kein Eingabe- oder Ausgabepuffer verwendet.

Um diese Energiesteuerungsanforderung zu initiieren, ruft PEP zuerst die RequestWorker-Routine auf, um PoFx darüber zu informieren, dass das PEP über ein zu übermittelnde Arbeitselement verfügt. PoFx antwortet auf diesen Anruf, indem eine PEP_DPM_WORK Benachrichtigung an das PEP gesendet wird. Pep antwortet, indem eine Arbeitsanforderung für die Energiesteuerung auf eine Änderung der Leistungseinschränkung übermittelt wird. Diese Anforderung umfasst eine PEP-zugeordnete PEP_WORK_INFORMATION-Struktur, in der das WorkType-Element auf PepWorkRequestPowerControl festgelegt ist, und das PowerControl-Element auf eine PEP-zugeordnete PEP_WORK_POWER_CONTROL-Struktur verweist. Das PowerControlCode-Element der PEP_WORK_POWER_CONTROL-Struktur ist auf GUID_PPM_PERF_CONSTRAINT_CHANGE festgelegt. Sowohl das InBuffer- als auch das OutBuffer-Element dieser Struktur muss NULL sein. Als Reaktion auf diese Energiesteuerungsanforderung sendet PoFx eine PEP_NOTIFY_PPM_PERF_CONSTRAINTS Benachrichtigung an den PEP, um die neuen Prozessorleistungsgrenzwerte zu erhalten.