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