Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Структура 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) |