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 |
---|---|
|
Für die Routine wurde ein ungültiger Parameter bereitgestellt. |
|
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 |