estrutura PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE (pepfx.h)

A estrutura PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE contém uma enumeração dos objetos no namespace do dispositivo.

Sintaxe

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;

Membros

DeviceHandle

Um valor PEPHANDLE que identifica o registro do dispositivo para serviços ACPI. O PEP (plug-in de extensão de plataforma) forneceu esse identificador em resposta a uma notificação de PEP_NOTIFY_ACPI_REGISTER_DEVICE anterior.

RequestFlags

Um conjunto de sinalizadores de entrada. Nenhum sinalizador está definido atualmente para esse membro, que é sempre definido como PEP_ACPI_EDN_FLAG_NONE (0x0).

Status

Um valor NTSTATUS que indica o status da enumeração de namespace do dispositivo solicitada. Defina esse membro como STATUS_SUCCESS se o PEP tiver êxito na enumeração dos objetos no namespace do dispositivo. Defina como STATUS_BUFFER_TOO_SMALL se o valor de entrada no membro ObjectBufferSize indicar que o buffer alocado não é grande o suficiente para conter a matriz Objects .

ObjectCount

O número de elementos na matriz Objects .

ObjectBufferSize

O tamanho, em bytes, do buffer que a PoFx ( estrutura de gerenciamento de energia ) do Windows alocou para os elementos da matriz Objects que seguem a estrutura. Se o valor de entrada de ObjectBufferSize não for grande o suficiente para conter todos os elementos da matriz Objects , o PEP substituirá o valor de entrada pelo tamanho necessário e definirá o membro Status como STATUS_BUFFER_TOO_SMALL. Para obter mais informações, consulte Comentários.

Objects[ANYSIZE_ARRAY]

O primeiro elemento em uma matriz de estruturas PEP_ACPI_OBJECT_NAME_WITH_TYPE que descrevem os objetos no namespace ACPI do dispositivo. Se essa matriz contiver mais de um elemento, os elementos de matriz adicionais seguirão o final da estrutura PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE .

Comentários

Essa estrutura é usada pela notificação PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE . Os membros RequestFlags e ObjectBufferSize contêm valores de entrada fornecidos pela PoFx quando a notificação é enviada. O PEP poderá substituir o valor de entrada ObjectBufferSize por um valor de saída se o valor de entrada for menor que o tamanho do buffer de saída necessário. Os membros Status, ObjectCount e Objects contêm valores de saída que o PEP grava na estrutura.

ObjectCount é o número de objetos listados no namespace ACPI neste dispositivo. O PEP deve verificar se o armazenamento alocado pela PoFx para a matriz Objects é grande o suficiente para conter elementos da matriz ObjectCount . Se ObjectCount > 1, os elementos adicionais da matriz ObjectCount–1 seguirão o final da estrutura PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE . O tamanho do buffer necessário para conter a estrutura e elementos de matriz adicionais é calculado da seguinte maneira:

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

Se o valor de entrada especificado no membro ObjectBufferSize for menor que o tamanho necessário, o PEP substituirá o valor de entrada ObjectBufferSize pelo tamanho necessário e definirá o membro Status como STATUS_BUFFER_TOO_SMALL. Em resposta, a PoFx alocará um buffer do tamanho necessário e enviará uma segunda notificação PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE para o PEP para este dispositivo.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte a partir do Windows 10.
Cabeçalho pepfx.h (inclua Pep_x.h)

Confira também