PEP_ACPI_EVALUATE_CONTROL_METHOD 구조체(pep_x.h)

PEP_ACPI_EVALUATE_CONTROL_METHOD 구조체는 평가할 ACPI 컨트롤 메서드, 이 메서드에 제공할 입력 인수 및 평가 결과에 대한 출력 버퍼를 지정합니다.

구문

typedef struct _PEP_ACPI_EVALUATE_CONTROL_METHOD {
  PEPHANDLE             DeviceHandle;
  ULONG                 RequestFlags;
  union {
    ULONG       MethodName;
    ANSI_STRING MethodNameString;
  };
  NTSTATUS              MethodStatus;
  PVOID                 CompletionContext;
  ULONG                 InputArgumentCount;
  SIZE_T                InputArgumentSize;
  PACPI_METHOD_ARGUMENT InputArguments;
  ULONG                 OutputArgumentCount;
  SIZE_T                OutputArgumentSize;
  PACPI_METHOD_ARGUMENT OutputArguments;
} PEP_ACPI_EVALUATE_CONTROL_METHOD, *PPEP_ACPI_EVALUATE_CONTROL_METHOD;

멤버

DeviceHandle

ACPI 서비스에 대한 디바이스 등록을 식별하는 PEPHANDLE 값입니다. PEP(플랫폼 확장 플러그 인)는 이전 PEP_NOTIFY_ACPI_REGISTER_DEVICE 알림에 대한 응답으로 이 핸들을 제공했습니다.

RequestFlags

플래그 집합입니다. 이 멤버에는 다음 값 중 하나가 포함됩니다.

플래그 이름 의미
PEP_ACPI_ECM_FLAG_NONE 0x0 유효한 컨트롤 메서드 이름이 아닙니다.
PEP_ACPI_ECM_FLAG_RELATIVE_NAME 0x1 MethodNameUlong 멤버에는 경로 상대 제어 메서드 이름이 포함됩니다.
PEP_ACPI_ECM_FLAG_FULLY_QUALIFIED_NAME 0x2 MethodNameString 멤버에는 정규화된 컨트롤 메서드 이름이 포함됩니다.

MethodName

ACPI 컨트롤 메서드의 4자 경로 상대 이름을 포함하는 ULONG 값입니다.

MethodNameString

ACPI 컨트롤 메서드의 정규화된 이름을 포함하는 ANSI_STRING 구조체입니다. 이 이름은 ACPI 네임스페이스에 있는 메서드의 경로와 이름을 지정합니다. 자세한 내용은 자식 디바이스 열거 및 제어 메서드를 참조하세요.

MethodStatus

ACPI 컨트롤 메서드 평가의 상태 나타내는 NTSTATUS 값입니다. 이 멤버를 STATUS_SUCCESS 설정하여 PEP(플랫폼 확장 플러그 인)가 메서드 평가를 성공적으로 완료했음을 나타냅니다. PEP가 제어 메서드를 인식하지 못함을 나타내려면 STATUS_NOT_SUPPORTED 로 설정합니다. inputArgumentSize 멤버가 지정한 출력 버퍼 크기가 메서드 결과를 포함할 만큼 크지 않음을 나타내려면 STATUS_BUFFER_TOO_SMALL 로 설정합니다.

PEP가 메서드를 비동기적으로 평가하는 경우 이 멤버를 STATUS_PENDING 설정하고 AcceptAcpiNotification 콜백에서 반환합니다. 나중에 평가가 완료되면 PEP는 CompleteWork 루틴을 호출하여 제어 메서드의 평가가 완료되었음을 Windows PoFx( 전원 관리 프레임워크 )에 알립니다.

CompletionContext

완성 컨텍스트 값에 대한 포인터입니다. PEP는 컨트롤 메서드가 비동기적으로 평가되는 경우에만 이 멤버를 사용합니다. 이 경우 PEP는 제어 메서드의 평가가 완료되었다는 것을 Windows PoFx(전원 관리 프레임워크)에 알린 CompleteWork 루틴 호출에서 이 완성 컨텍스트 포인터를 제공합니다. 이 호출에 대한 입력 매개 변수에 포함된 것은 PEP가 완료 컨텍스트 포인터를 작성한 PEP_WORK_ACPI_EVALUATE_CONTROL_METHOD_COMPLETE 구조체에 대한 포인터입니다. 컨텍스트는 PEP에 불투명하며 PoFx에서 내부적으로 사용되는 데이터를 포함합니다.

InputArgumentCount

InputArguments 멤버가 가리키는 입력 버퍼의 입력 인수 수입니다. 각 인수는 인수의 크기를 지정하는 ACPI_METHOD_ARGUMENT 구조체로 시작합니다. 현재 최대 InputArgumentCount 값은 1입니다.

InputArgumentSize

InputArguments 멤버가 가리키는 입력 버퍼의 크기(바이트)입니다.

InputArguments

지정된 ACPI 컨트롤 메서드에 대한 입력 인수를 지정하는 ACPI_METHOD_ARGUMENT 구조체를 포함하는 입력 버퍼에 대한 포인터입니다.

OutputArgumentCount

OutputArguments 멤버가 가리키는 출력 버퍼의 출력 인수 수입니다. 각 인수는 인수의 크기를 지정하는 ACPI_METHOD_ARGUMENT 구조체로 시작합니다. 현재 허용되는 최대 OutputArgumentCount 값은 1입니다.

OutputArgumentSize

입력 시 OutputArguments 멤버가 가리키는 출력 버퍼의 크기(바이트)입니다. 이 버퍼가 메서드 평가 결과를 포함할 만큼 크지 않은 경우 PEP는 OutputArgumentSize 입력 값을 필요한 크기로 덮어쓰고 MethodStatus 멤버를 STATUS_BUFFER_TOO_SMALL 설정합니다.

OutputArguments

PEP가 지정된 ACPI 제어 메서드를 평가한 결과를 포함하는 ACPI_METHOD_ARGUMENT 구조를 작성하는 출력 버퍼에 대한 포인터입니다.

설명

이 구조체는 PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD 알림에서 사용됩니다. MethodStatus 멤버에는 PEP가 이 알림에 대한 응답으로 구조체에 쓰는 출력 값이 포함됩니다. OutputArgumentSize 멤버는 알림을 보낼 때 PoFx에서 제공하는 입력 값을 포함합니다. 입력 값이 필요한 출력 버퍼 크기보다 작은 경우 PEP는 이 입력 값을 출력 값으로 덮어쓸 수 있습니다. 이 구조체의 다른 모든 멤버에는 알림을 보낼 때 PoFx에서 제공하는 입력 값이 포함됩니다.

이 구조체는 4자 경로 상대 컨트롤 메서드 이름( RequestFlags = PEP_ACPI_ECM_FLAG_RELATIVE_NAME 경우) 또는 정규화된 컨트롤 메서드 이름( RequestFlags = PEP_ACPI_ECM_FLAG_FULLY_QUALIFIED_NAME 경우)을 포함하는 명명되지 않은 공용 구조체를 정의합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 부터 지원합니다.
머리글 pep_x.h(Pep_x.h 포함)

추가 정보