структура 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

Значение PEPHANDLE, определяющее регистрацию устройства для служб ACPI. Подключаемый модуль расширения платформы (PEP) предоставил этот дескриптор в ответ на предыдущее уведомление PEP_NOTIFY_ACPI_REGISTER_DEVICE .

RequestFlags

Набор флагов ввода. В настоящее время для этого элемента не определены флаги, для которого всегда задано значение PEP_ACPI_EDN_FLAG_NONE (0x0).

Status

Значение NTSTATUS, указывающее состояние запрошенного перечисления пространства имен устройств. Задайте для этого элемента значение STATUS_SUCCESS, если PEP успешно перечисляет объекты в пространстве имен устройства. Задайте значение STATUS_BUFFER_TOO_SMALL, если входное значение в элементе ObjectBufferSize указывает, что выделенный буфер недостаточно велик для хранения массива Objects .

ObjectCount

Количество элементов в массиве Objects .

ObjectBufferSize

Размер (в байтах) буфера, выделенного платформой управления питанием Windows (PoFx) для элементов массива Objects , которые следуют за структурой. Если входное значение ObjectBufferSize недостаточно велико, чтобы содержать все элементы массива Objects , PEP перезаписывает входное значение требуемым размером и задает элементу Status значение STATUS_BUFFER_TOO_SMALL. Дополнительные сведения см. в разделе Примечания.

Objects[ANYSIZE_ARRAY]

Первый элемент в массиве PEP_ACPI_OBJECT_NAME_WITH_TYPE структур, описывающих объекты в пространстве имен ACPI устройства. Если этот массив содержит несколько элементов, дополнительные элементы массива следуют за концом структуры PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE .

Комментарии

Эта структура используется уведомлением PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE . Элементы RequestFlags и ObjectBufferSize содержат входные значения, предоставляемые PoFx при отправке уведомления. PeP может перезаписать входное значение ObjectBufferSize выходным значением, если входное значение меньше требуемого размера выходного буфера. Элементы Status, ObjectCount и Objects содержат выходные значения, которые PEP записывает в структуру.

ObjectCount — это количество объектов, перечисленных в пространстве имен ACPI на этом устройстве. PEP должен убедиться, что хранилище, выделенное 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_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE в PEP для этого устройства.

Требования

Требование Значение
Минимальная версия клиента Поддерживается начиная с Windows 10.
Верхняя часть pep_x.h (включая Pep_x.h)

См. также раздел