Функция 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. |
"ФИРМА" | Поставщик необработанных таблиц встроенного ПО. |
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.
Если системное встроенное ПО содержит несколько таблиц с одинаковым именем, AuxKlibEnumerateSystemFirmwareTables перечисляет их все. Однако AuxKlibGetSystemFirmwareTable извлекает только первую таблицу в списке с этим именем.
AuxKlibEnumerateSystemFirmwareTables является эквивалентом режима ядра 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 |