AuxKlibGetSystemFirmwareTable-Funktion (aux_klib.h)

Die AuxKlibGetSystemFirmwareTable-Routine ruft die angegebene Firmwaretabelle vom Firmwaretabellenanbieter ab.

Syntax

NTSTATUS AuxKlibGetSystemFirmwareTable(
  [in]            ULONG  FirmwareTableProviderSignature,
  [in]            ULONG  FirmwareTableID,
  [out, optional] PVOID  FirmwareTableBuffer,
  [in]            ULONG  BufferLength,
  [out, optional] PULONG ReturnLength
);

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.
"RSMB" Der Unformatierte SMBIOS-Firmwaretabellenanbieter.

[in] FirmwareTableID

Der Bezeichner der Firmwaretabelle. Die Zeichen im Bezeichner befinden sich in little-endianischer Reihenfolge.

Beispielsweise ist FACP der Name einer Tabelle, die von ACPI bereitgestellt wird. Die FACP-Tabelle wird durch den 4-Byte-Wert "PCAF" (0x50434146) im Feld Signatur der DESCRIPTION_HEADER-Struktur am Anfang der Tabelle identifiziert. Im folgenden Codebeispiel wird gezeigt, wie FACP in einem AuxKlibGetSystemFirmwareTable-Aufruf angegeben wird :

status = AuxKlibGetSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE, &dataSize);

In diesem Beispiel pBuffer zeigt auf den vom Aufrufer zugewiesenen Puffer, BUFSIZE ist die Größe dieses Puffers in Bytes und dataSize ist eine Variable, in die die Routine die Anzahl der in den Puffer geschriebenen Bytes schreibt. Weitere Informationen zur DESCRIPTION_HEADER-Struktur finden Sie unter Advanced Configuration and Power Interface Specification auf der Advanced Configuration and Power Interface-Website .

[out, optional] FirmwareTableBuffer

Ein Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der die Liste der Firmwaretabellen empfängt. Wenn dieser Parameter NULL ist, ist der in *ReturnLength geschriebene Wert die erforderliche Puffergröße. Weitere Informationen zum Inhalt dieses Puffers finden Sie im Abschnitt Hinweise.

[in] BufferLength

Die Größe des Puffers in Bytes, auf den firmwareTableBuffer verweist.

[out, optional] ReturnLength

Ein Zeiger auf einen Speicherort, an den die Routine die Anzahl der Byte von Daten schreibt, die in den Puffer geschrieben werden, auf den FirmwareTableBuffer verweist.

Rückgabewert

AuxKlibGetSystemFirmwareTable gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Mögliche Rückgabewerte sind die folgenden Fehlercodes.

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
Für die Routine wurde ein ungültiger Parameter bereitgestellt.
STATUS_BUFFER_TOO_SMALL
Der vom Aufrufer zugeordnete Puffer ist zu klein, aber die erforderliche Puffergröße wurde in den ReturnLength-Ausgabeparameter geschrieben.

Hinweise

Der RAW-SMBIOS-Tabellenanbieter ("RSMB") ruft den Inhalt der unformatierten SMBIOS-Firmwaretabelle ab. Die in den FirmwareTableBuffer-Puffer geschriebenen Daten beginnen mit der folgenden Struktur:

struct RawSMBIOSData
{
  BYTE  Used20CallingMethod;
  BYTE  SMBIOSMajorVersion;
  BYTE  SMBIOSMinorVersion;
  BYTE  DmiRevision;
  DWORD  Length;
  BYTE  SMBIOSTableData[];
};

Der Unformatierte Firmwaretabellenanbieter ("FIRM") ruft den Inhalt des angegebenen physischen Adressbereichs ab. Der in *ReturnLength geschriebene Wert entspricht der Größe des Adressbereichs.

Der ACPI-Tabellenanbieter ('ACPI') ruft den Inhalt der angegebenen ACPI-Tabelle ab. Da OEMs ACPI-Firmwaretabellen einschließen können, die nicht in der ACPI-Spezifikation aufgeführt sind, sollten Sie zunächst AuxKlibEnumerateSystemFirmwareTables aufrufen, um alle ACPI-Tabellen aufzulisten, die derzeit in der Systemfirmware verfügbar sind.

Wenn die Systemfirmware für ACPI mehrere Tabellen mit demselben Namen enthält, listet AuxKlibEnumerateSystemFirmwareTables alle auf. AuxKlibGetSystemFirmwareTable ruft jedoch nur die erste Tabelle in der Liste ab, die diesen Namen hat.

AuxKlibGetSystemFirmwareTable ist das Kernelmodusäquivalent der Win32 GetSystemFirmwareTable-Funktion .

Treiber müssen AuxKlibInitialize aufrufen, bevor AuxKlibGetSystemFirmwareTable aufgerufen wird.

AuxKlibGetSystemFirmwareTable ist in der Headerdatei Aux_klib.h definiert, die im WDK für Windows 8 und höhere Versionen von Windows enthalten ist. Um diese Routine zu verwenden, sollten Treiber einen Link zu der Version von Aux_klib.lib erstellen, die im WDK für Windows 8 und höhere Versionen von Windows enthalten ist. Die Implementierung von AuxKlibGetSystemFirmwareTable in diesen Versionen des WDK kann in Windows-Versionen ab Windows Vista verwendet werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt ab Windows Vista.
Zielplattform Universell
Header aux_klib.h (Aux_klib.h einschließen)
Bibliothek Aux_Klib.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

AuxKlibEnumerateSystemFirmwareTables

AuxKlibInitialize

GetSystemFirmwareTable