Функция 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