PPM 전원 제어 코드

이 항목에 설명된 전원 제어 코드는 플랫폼 확장 플러그 인(PEP)에서 사용됩니다. 전원 제어 요청은 IOCTL(I/O 제어 요청)과 비슷합니다. 그러나 IOCTL과 달리 전원 제어 요청은 PoFx(창 전원 관리 프레임워크)로 직접 전송되며 디바이스 스택의 다른 디바이스 드라이버에서 관찰되지 않습니다.

다음은 PPM 전원 제어 코드입니다.

코드 구문 Description
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에서 프로세서에 할당된 주차 페이지에 대한 정보를 위해 PoFx(Windows 전원 관리 프레임워크)를 쿼리하는 데 사용됩니다.

프로세서의 주차 페이지를 확인하기 위해 이 프로세서의 PEP(플랫폼 확장 플러그 인)는 poFx에 PEP_PPM_POWER_CONTROL_QUERY_PARKING_PAGE 전원 제어 요청을 제출합니다.

이 전원 제어 요청을 시작하기 위해 PEP는 먼저 RequestWorker 루틴을 호출하여 PEP에 제출할 작업 항목이 있음을 PoFx에 알립니다. PoFx는 PEP에 PEP_DPM_WORK 알림을 전송하여 이 호출에 응답합니다. PEP는 주차 페이지 정보에 대한 전원 제어 작업 요청을 제출하여 응답합니다. 이 요청에는 WorkType 멤버가 PepWorkRequestPowerControl로 설정되고 PowerControl 멤버가 PEP 할당 PEP_WORK_POWER_CONTROL 구조를 가리키는 PEP 할당 PEP_WORK_INFORMATION 구조가 포함됩니다. 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킬로바이트 메모리 블록입니다. 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 루틴을 호출하여 PEP에 제출할 작업 항목이 있음을 PoFx에 알립니다. PoFx는 PEP에 PEP_DPM_WORK 알림을 전송하여 이 호출에 응답합니다. PEP는 성능 제약 조건 변경에 대한 전원 제어 작업 요청을 제출하여 응답합니다. 이 요청에는 WorkType 멤버가 PepWorkRequestPowerControl로 설정되고 PowerControl 멤버가 PEP 할당 PEP_WORK_POWER_CONTROL 구조를 가리키는 PEP 할당 PEP_WORK_INFORMATION 구조가 포함됩니다. PEP_WORK_POWER_CONTROL 구조체의 PowerControlCode 멤버가 GUID_PPM_PERF_CONSTRAINT_CHANGE 설정됩니다. 이 구조체의 InBuffer 및 OutBuffer 멤버는 모두 NULL이어야 합니다. 이 전원 제어 요청에 대한 응답으로 PoFx는 PEP에 PEP_NOTIFY_PPM_PERF_CONSTRAINTS 알림을 보내 새 프로세서 성능 제한을 가져옵니다.