PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE 구조체(pep_x.h)

PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE 구조체에는 디바이스의 네임스페이스에 있는 개체의 열거형이 포함됩니다.

구문

typedef struct _PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE {
  PEPHANDLE                      DeviceHandle;
  ULONG                          RequestFlags;
  NTSTATUS                       Status;
  ULONG                          ObjectCount;
  SIZE_T                         ObjectBufferSize;
  PEP_ACPI_OBJECT_NAME_WITH_TYPE Objects[ANYSIZE_ARRAY];
} PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE, *PPEP_ACPI_ENUMERATE_DEVICE_NAMESPACE;

멤버

DeviceHandle

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

RequestFlags

입력 플래그 집합입니다. 이 멤버에 대한 플래그는 현재 정의되어 있지 않으며 항상 PEP_ACPI_EDN_FLAG_NONE(0x0)로 설정됩니다.

Status

요청된 디바이스 네임스페이스 열거형의 상태 나타내는 NTSTATUS 값입니다. PEP가 디바이스 네임스페이스의 개체를 열거하는 데 성공하면 이 멤버를 STATUS_SUCCESS 설정합니다. ObjectBufferSize 멤버의 입력 값이 할당된 버퍼가 Objects 배열을 포함할 만큼 크지 않다는 것을 나타내는 경우 STATUS_BUFFER_TOO_SMALL 로 설정합니다.

ObjectCount

Objects 배열의 요소 수입니다.

ObjectBufferSize

구조체를 따르는 Objects 배열 요소에 대해 할당된 Windows PoFx(전원 관리 프레임워크)의 버퍼 크기(바이트)입니다. ObjectBufferSize의 입력 값이 모든 Objects 배열 요소를 포함할 만큼 크지 않은 경우 PEP는 입력 값을 필요한 크기로 덮어쓰고 Status 멤버를 STATUS_BUFFER_TOO_SMALL 설정합니다. 자세한 내용은 비고를 참조하세요.

Objects[ANYSIZE_ARRAY]

디바이스의 ACPI 네임스페이스에 있는 개체를 설명하는 PEP_ACPI_OBJECT_NAME_WITH_TYPE 구조체 배열의 첫 번째 요소입니다. 이 배열에 둘 이상의 요소가 포함된 경우 추가 배열 요소는 PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE 구조체의 끝을 따릅니다.

설명

이 구조체는 PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE 알림에서 사용됩니다. RequestFlagsObjectBufferSize 멤버는 알림을 보낼 때 PoFx에서 제공하는 입력 값을 포함합니다. 입력 값이 필요한 출력 버퍼 크기보다 작은 경우 PEP는 ObjectBufferSize 입력 값을 출력 값으로 덮어쓸 수 있습니다. Status, ObjectCountObjects 멤버에는 PEP가 구조체에 쓰는 출력 값이 포함됩니다.

ObjectCount 는 이 디바이스 아래의 ACPI 네임스페이스에 나열된 개체의 수입니다. PEP는 Object 배열에 대해 PoFx에서 할당한 스토리지가 ObjectCount 배열 요소를 포함할 만큼 충분히 큰지 확인해야 합니다. 이면 ObjectCount > 1추가 ObjectCount–1 배열 요소가 PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE 구조체의 끝을 따릅니다. 구조체 및 추가 배열 요소를 포함하는 데 필요한 버퍼 크기는 다음과 같이 계산됩니다.

sizeof(PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE) + ((ObjectCount-1) * sizeof(PEP_ACPI_OBJECT_NAME_WITH_TYPE));

ObjectBufferSize 멤버에 지정된 입력 값이 필요한 크기보다 작으면 PEP는 ObjectBufferSize 입력 값을 필수 크기로 덮어쓰고 Status 멤버를 STATUS_BUFFER_TOO_SMALL 설정합니다. 이에 대한 응답으로 PoFx는 필요한 크기의 버퍼를 할당하고 이 디바이스의 PEP에 두 번째 PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE 알림을 보냅니다.

요구 사항

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

추가 정보