Функция AuxKlibEnumerateSystemFirmwareTables (aux_klib.h)
Подпрограмма AuxKlibEnumerateSystemFirmwareTables перечисляет все таблицы встроенного ПО указанного типа.
Синтаксис
NTSTATUS AuxKlibEnumerateSystemFirmwareTables(
[in] ULONG FirmwareTableProviderSignature,
[out, optional] PVOID FirmwareTableBuffer,
[in] ULONG BufferLength,
[out, optional] PULONG ReturnLength
);
Параметры
[in] FirmwareTableProviderSignature
Идентификатор поставщика таблицы встроенного ПО, на который должен быть направлен запрос. Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
ACPI | Поставщик таблиц встроенного ПО ACPI. |
'FIRM' | Поставщик необработанных таблиц встроенного ПО. |
"RSMB" | Необработанный поставщик таблиц встроенного ПО SMBIOS. |
[out, optional] FirmwareTableBuffer
Указатель на буфер, выделенный вызывающим объектом, в который подпрограмма записывает список таблиц встроенного ПО. Если этот параметр имеет значение NULL, значение, записанное в *ReturnLength , является требуемым размером буфера. Дополнительные сведения о содержимом этого буфера см. в разделе Примечания.
[in] BufferLength
Размер (в байтах) буфера, на который указывает FirmwareTableBuffer.
[out, optional] ReturnLength
Указатель на расположение, в которое подпрограмма записывает количество байтов данных, записанных в буфер, на который указывает FirmwareTableBuffer.
Возвращаемое значение
AuxKlibEnumerateSystemFirmwareTables возвращает STATUS_SUCCESS, если вызов выполнен успешно. Возможные возвращаемые значения включают следующие коды ошибок.
Код возврата | Описание |
---|---|
|
Подпрограмме предоставлен недопустимый параметр. |
|
Буфер, выделенный вызывающим объектом, слишком мал, но требуемый размер буфера был записан в выходной параметр ReturnLength . |
Комментарии
Если вызов выполнен успешно, эта подпрограмма записывает массив из одного или нескольких идентификаторов таблицы в буфер, на который указывает параметр FirmwareTableBuffer . Каждый элемент этого массива является значением DWORD, которое определяет таблицу встроенного ПО, доступную у поставщика, указанного параметром FirmwareTableProviderSignature .
Необработанный поставщик таблиц SMBIOS (RSMB) в настоящее время возвращает один идентификатор таблицы, 0x00000000. Это соответствует необработанной таблице встроенного ПО SMBIOS.
Поставщик необработанных таблиц встроенного ПО (FIRM) извлекает список идентификаторов таблиц DWORD. Каждый идентификатор соответствует началу физического диапазона адресов. В настоящее время этот поставщик возвращает два идентификатора: 0x000C0000 и 0x000E0000. Эти идентификаторы представляют физическую память от 0x000C0000 до 0x000DFFFF и от 0x000E0000 до 0x000FFFFF соответственно.
Поставщик таблиц ACPI (ACPI) возвращает список идентификаторов таблиц DWORD. Каждый возвращаемый идентификатор соответствует полю сигнатурыDESCRIPTION_HEADER структуры для таблицы ACPI, которая в настоящее время находится в пространстве имен ACPI системы. Дополнительные сведения об этой структуре см. в спецификации интерфейса расширенной конфигурации и питания на веб-сайте Advanced Configuration and Power Interface .
Для ACPI, если встроенное ПО системы содержит несколько таблиц с одинаковым именем, AuxKlibEnumerateSystemFirmwareTables перечисляет их все. Однако AuxKlibGetSystemFirmwareTable извлекает только первую таблицу в списке с этим именем.
AuxKlibEnumerateSystemFirmwareTables является эквивалентом функции Win32 EnumSystemFirmwareTables в режиме ядра.
Драйверы должны вызывать AuxKlibInitialize перед вызовом AuxKlibEnumerateSystemFirmwareTable.
AuxKlibEnumerateSystemFirmwareTables определяется в файле заголовка Aux_klib.h, который входит в состав WDK для Windows 8 и более поздних версий Windows. Чтобы использовать эту подпрограмму, драйверы должны ссылаться на версию Aux_klib.lib, включенную в WDK для Windows 8 и более поздних версий Windows. Реализация AuxKlibEnumerateSystemFirmwareTables в этих версиях WDK может использоваться в версиях Windows, начиная с Windows Vista.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается начиная с Windows Vista. |
Целевая платформа | Универсальное |
Верхняя часть | aux_klib.h (включая Aux_klib.h) |
Библиотека | Aux_Klib.lib |
IRQL | PASSIVE_LEVEL |