Freigeben über


EnumSystemFirmwareTables-Funktion (sysinfoapi.h)

Listet alle Systemfirmwaretabellen des angegebenen Typs auf.

Syntax

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

Parameter

[in] FirmwareTableProviderSignature

Der Bezeichner des Firmwaretabellenanbieters, an den die Abfrage weitergeleitet werden soll. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
"ACPI" Der ACPI-Firmwaretabellenanbieter.
"FIRM" Der Unformatierte Firmwaretabellenanbieter. Für UEFI-Systeme nicht unterstützt; verwenden Sie stattdessen "RSMB".
"RSMB" Der Unformatierte SMBIOS-Firmwaretabellenanbieter.

[out] pFirmwareTableEnumBuffer

Ein Zeiger auf einen Puffer, der die Liste der Firmwaretabellen empfängt. Wenn dieser Parameter NULL ist, ist der Rückgabewert die erforderliche Puffergröße.

Weitere Informationen zum Inhalt dieses Puffers finden Sie im Abschnitt Hinweise.

[in] BufferSize

Die Größe des pFirmwareTableBuffer-Puffers in Bytes.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert die Anzahl von Bytes, die in den Puffer geschrieben werden. Dieser Wert ist immer kleiner oder gleich BufferSize.

Wenn die Funktion fehlschlägt, weil der Puffer nicht groß genug ist, entspricht der Rückgabewert der erforderlichen Puffergröße in Bytes. Dieser Wert ist immer größer als BufferSize.

Wenn die Funktion aus einem anderen Grund fehlschlägt, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Ab Windows 10 Version 1803 können universelle Windows-Apps auf smBIOS-Informationen (System Management BIOS) zugreifen, indem sie die eingeschränkte smbios-Funktion im App-Manifest deklarieren. Weitere Informationen finden Sie unter Zugreifen auf SMBIOS-Informationen aus einer universellen Windows-App . Nur unformatierte SMBIOS-Firmwaretabellen (RSMB) können von einer universellen Windows-App aus zugegriffen werden.

Ab Windows Server 2003 mit Service Pack 1 (SP1) können Anwendungen nicht mehr auf das \Device\PhysicalMemory-Objekt zugreifen. Der Zugriff auf dieses Objekt ist auf Kernelmodustreiber beschränkt. Diese Änderung wirkt sich auf Anwendungen aus, die SMBIOS (System Management BIOS) oder andere BIOS-Daten lesen, die im niedrigsten physischen Arbeitsspeicher von 1 MB gespeichert sind. Anwendungen verfügen über die folgenden Alternativen zum Lesen von Daten aus wenig physischem Arbeitsspeicher:

  • Rufen Sie die SMBIOS-Eigenschaften mithilfe von WMI ab. Viele einzelne Eigenschaften sind in den Win32-Klassen enthalten. Sie können auch die SMBIOS-Rohdaten mithilfe der MSSMBios_RawSMBiosTables-Klasse in einem einzelnen Puffer abrufen.
  • Verwenden Sie die GetSystemFirmwareTable-Funktion , um die unformatierte SMBIOS-Firmwaretabelle zu lesen.
Es gibt keine Möglichkeit für Anwendungen, in wenig physischen Arbeitsspeicher zu schreiben.

Der RAW-SMBIOS-Tabellenanbieter ("RSMB") gibt derzeit einen einzelnen Tabellenbezeichner zurück, 0x0000. Dies entspricht der unformatierten SMBIOS-Firmwaretabelle.

Der Unformatierte Firmwaretabellenanbieter ("FIRM") gibt eine Liste von DWORD-Tabellenbezeichnern zurück. Jeder Bezeichner entspricht dem Anfang eines physischen Adressbereichs. Derzeit gibt dieser Anbieter "C0000" und "E0000" zurück. Diese Werte entsprechen dem physischen Speicher von 0xC0000 bis 0xDFFFF bzw. 0xE0000 bis 0xFFFFF.

Der ACPI-Tabellenanbieter ("ACPI") gibt eine Liste von DWORD-Tabellenbezeichnern zurück. Jeder zurückgegebene Bezeichner entspricht dem Signaturfeld der DESCRIPTION_HEADER-Struktur für eine ACPI-Tabelle, die sich derzeit im ACPI-Namespace des Systems befindet.

Wenn das System für ACPI mehrere Tabellen mit demselben Namen enthält, werden sie alle mit EnumSystemFirmwareTables aufgezählt. GetSystemFirmwareTable ruft jedoch nur die erste Tabelle in der Liste mit diesem Namen ab.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista, Windows XP Professional x64 Edition [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008, Windows Server 2003 mit SP1 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile sysinfoapi.h (windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Zugreifen auf SMBIOS-Informationen aus einer universellen Windows-App

GetSystemFirmwareTable

Systeminformationsfunktionen