Функция 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, если вызов выполнен успешно. Возможные возвращаемые значения включают следующие коды ошибок.

Код возврата Описание
STATUS_INVALID_PARAMETER
Подпрограмме предоставлен недопустимый параметр.
STATUS_BUFFER_TOO_SMALL
Буфер, выделенный вызывающим объектом, слишком мал, но требуемый размер буфера был записан в выходной параметр 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

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

AuxKlibGetSystemFirmwareTable

AuxKlibInitialize

EnumSystemFirmwareTables