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 |
---|---|
|
An die Routine wurde ein ungültiger Parameter übergeben. |
|
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 |