estrutura PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE (pep_x.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 é 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 de 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 de PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE . Os membros RequestFlags e ObjectBufferSize contêm valores de entrada fornecidos pelo 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 por PoFx para a matriz Objects é grande o suficiente para conter elementos de matriz ObjectCount . Se ObjectCount > 1
, os elementos de matriz ObjectCount-1 adicionais 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, o PoFx alocará um buffer do tamanho necessário e enviará uma segunda notificação PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE ao PEP para este dispositivo.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte começando com Windows 10. |
Cabeçalho | pep_x.h (inclua Pep_x.h) |