Поделиться через


Функция EnumSystemFirmwareTables (sysinfoapi.h)

Перечисляет все системные таблицы встроенного ПО указанного типа.

Синтаксис

UINT EnumSystemFirmwareTables(
  [in]  DWORD FirmwareTableProviderSignature,
  [out] PVOID pFirmwareTableEnumBuffer,
  [in]  DWORD BufferSize
);

Параметры

[in] FirmwareTableProviderSignature

Идентификатор поставщика таблицы встроенного ПО, на который должен быть направлен запрос. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
ACPI Поставщик таблиц встроенного ПО ACPI.
'FIRM' Поставщик необработанных таблиц встроенного ПО. Не поддерживается для систем UEFI; вместо этого используйте RSMB.
"RSMB" Необработанный поставщик таблиц встроенного ПО SMBIOS.

[out] pFirmwareTableEnumBuffer

Указатель на буфер, получающий список таблиц встроенного ПО. Если этот параметр имеет значение NULL, возвращаемое значение является требуемым размером буфера.

Дополнительные сведения о содержимом этого буфера см. в разделе Примечания.

[in] BufferSize

Размер буфера pFirmwareTableBuffer в байтах.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение — это количество байтов, записанных в буфер. Это значение всегда будет меньше или равно BufferSize.

Если функция завершается сбоем из-за недостаточно большого размера буфера, возвращаемым значением является требуемый размер буфера в байтах. Это значение всегда больше BufferSize.

Если функция завершается сбоем по какой-либо другой причине, возвращаемое значение равно нулю. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Начиная с Windows 10 версии 1803, универсальные приложения для Windows могут получать доступ к данным BIOS управления системой (SMBIOS), объявив ограниченную возможность smbios в манифесте приложения. Дополнительные сведения см. в разделе Доступ к сведениям SMBIOS из универсального приложения для Windows . Из универсального приложения для Windows можно получить доступ только к необработанным таблицам встроенного ПО SMBIOS (RSMB).

По состоянию на Windows Server 2003 с пакетом обновления 1 (SP1) приложения не могут получить доступ к объекту \Device\PhysicalMemory. Доступ к этому объекту ограничен драйверами в режиме ядра. Это изменение влияет на приложения, которые считывают BIOS управления системой (SMBIOS) или другие данные BIOS, хранящиеся в минимальном размере 1 МБ физической памяти. Приложения имеют следующие альтернативы для чтения данных из недостаточной физической памяти:

  • Получение свойств SMBIOS с помощью инструментария WMI. В классах Win32 содержится множество отдельных свойств. Вы также можете получить необработанные данные SMBIOS в одном буфере с помощью класса MSSMBios_RawSMBiosTables .
  • Используйте функцию GetSystemFirmwareTable для чтения необработанной таблицы встроенного ПО SMBIOS.
Приложения не могут записывать данные в малой физической памяти.

Необработанный поставщик таблиц SMBIOS (RSMB) в настоящее время возвращает один идентификатор таблицы, 0x0000. Это соответствует необработанной таблице встроенного ПО SMBIOS.

Поставщик необработанных таблиц встроенного ПО (FIRM) возвращает список идентификаторов таблиц DWORD . Каждый идентификатор соответствует началу физического диапазона адресов. В настоящее время этот поставщик возвращает "C0000" и "E0000". Эти значения соответствуют физической памяти от 0xC0000 до 0xDFFFF и 0xE0000 к 0xFFFFF соответственно.

Поставщик таблиц ACPI (ACPI) возвращает список идентификаторов таблиц DWORD . Каждый возвращаемый идентификатор соответствует полю сигнатуры DESCRIPTION_HEADER структуры для таблицы ACPI, которая в настоящее время находится в пространстве имен ACPI системы.

Для ACPI, если система содержит несколько таблиц с одинаковым именем, все они перечисляются с помощью EnumSystemFirmwareTables. Однако GetSystemFirmwareTable извлекает только первую таблицу в списке с этим именем.

Требования

Требование Значение
Минимальная версия клиента Windows Vista, Windows XP Professional x64 Edition [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008, Windows Server 2003 с пакетом обновления 1 (SP1) [классические приложения | Приложения UWP]
Целевая платформа Windows
Header sysinfoapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

Доступ к сведениям SMBIOS из универсального приложения для Windows

GetSystemFirmwareTable

Функции сведений о системе