Поделиться через


структура PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE (pepfx.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 указывает, что выделенный буфер недостаточно велик, чтобы содержать массив объектов .

ObjectCount

Количество элементов в массиве объектов .

ObjectBufferSize

Размер в байтах буфера, выделенного платформой управления питанием Windows (PoFx) для элементов массива объектов , следовать структуре. Если входное значение ObjectBufferSize недостаточно большое, чтобы содержать все элементы массива объектов , PEP перезаписывает входное значение с требуемым размером и задает элемент состояния на 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_BUFFER_TOO_SMALL. В ответ PoFx выделяет буфер требуемого размера и отправляет второе уведомление PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE в PEP для этого устройства.

Требования

Требование Ценность
Минимальный поддерживаемый клиент Поддерживается начиная с Windows 10.
Заголовок pepfx.h (include Pep_x.h)

См. также