Freigeben über


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 einer der folgenden Werte sein:

Wert Bedeutung
'ACPI' Der ACPI-Firmwaretabellenanbieter.
"FIRM" Der Anbieter der rohen Firmwaretabelle.
"RSMB" Der reine SMBIOS-Firmwaretabellenanbieter.

[in] FirmwareTableID

Der Bezeichner der Firmwaretabelle. Die Zeichen im Bezeichner sind in kleiner endischer 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. Das folgende Codebeispiel zeigt, wie FACP in einem AuxKlibGetSystemFirmwareTable-aufruf angegeben wird:

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

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

[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 FirmwareTableBufferverweist.

[out, optional] ReturnLength

Ein Zeiger auf eine Position, an die die Routine die Anzahl der in den Puffer geschriebenen Daten schreibt, auf die durch FirmwareTableBufferverwiesen wird.

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
An die Routine wurde ein ungültiger Parameter übergeben.
STATUS_BUFFER_TOO_SMALL
Der vom Aufrufer zugewiesene Puffer ist zu klein, die erforderliche Puffergröße wurde jedoch in den ReturnLength Ausgabeparameter geschrieben.

Bemerkungen

Der unformatierte 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 Anbieter für rohe Firmwaretabelle ('FIRM') ruft den Inhalt des angegebenen physischen Adressbereichs ab. Der in *ReturnLength- geschriebene Wert ist die Größe des Adressbereichs.

Der ACPI-Tabellenanbieter (ACPI) ruft den Inhalt der angegebenen ACPI-Tabelle ab. Da OEMs ACPI-Firmwaretabellen enthalten können, die nicht in der ACPI-Spezifikation aufgeführt sind, sollten Sie zuerst AuxKlibEnumerateSystemFirmwareTables aufrufen, um alle ACPI-Tabellen auflisten, die derzeit über die Systemfirmware verfügbar sind.

Wenn die Systemfirmware für ACPI mehrere Tabellen mit demselben Namen enthält, AuxKlibEnumerateSystemFirmwareTables alle aufzählt. 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 wird in der Headerdatei Aux_klib.h definiert, die in der WDK für Windows 8 und neueren Versionen von Windows enthalten ist. Um diese Routine zu verwenden, sollten Treiber mit der Version von Aux_klib.lib verknüpft werden, die in der WDK für Windows 8 und neueren 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
mindestens unterstützte Client- Wird ab Windows Vista unterstützt.
Zielplattform- Universal
Header- aux_klib.h (einschließen Aux_klib.h)
Library Aux_Klib.lib
IRQL- PASSIVE_LEVEL

Siehe auch

AuxKlibEnumerateSystemFirmwareTables

AuxKlibInitialize

GetSystemFirmwareTable-