Freigeben über


DXGK_FIRMWARE_TABLE_INTERFACE Struktur (dispmprt.h)

Enthält Funktionen, die Anzeigetreiber im Benutzermodus zum Lesen und Aufzählen der Systemfirmwaretabelle verwenden können. Diese Funktionen werden vom Microsoft DirectX-Grafik-Kernelsubsystem bereitgestellt und können von WDDM 1.2 und höher anzeigetreibern für den Benutzermodus aufgerufen werden.

Syntax

typedef struct _DXGK_FIRMWARE_TABLE_INTERFACE {
  USHORT                 Size;
  USHORT                 Version;
  PVOID                  Context;
  PINTERFACE_REFERENCE   InterfaceReference;
  PINTERFACE_DEREFERENCE InterfaceDereference;
  NTSTATUS(VOID *Context,ULONG ProviderSignature,ULONG BufferSize,VOID *Buffer,ULONG *RequiredSize)              * )(EnumSystemFirmwareTables;
  NTSTATUS(VOID *Context,ULONG ProviderSignature,ULONG TableId,ULONG BufferSize,VOID *Buffer,ULONG *RequiredSize)              * )(ReadSystemFirmwareTable;
} DXGK_FIRMWARE_TABLE_INTERFACE, *PDXGK_FIRMWARE_TABLE_INTERFACE;

Angehörige

Size

Die Größe dieser Struktur in Byte.

Version

Die Versionsnummer der System-Firmwaretabellenschnittstelle. Versionsnummernkonstanten werden in Dispmprt.h definiert (z. B. DXGK_FIRMWARE_TABLE_INTERFACE_VERSION_1).

Context

Ein Zeiger auf einen Kontext, der vom Anzeigeporttreiber bereitgestellt wird.

InterfaceReference

Ein Zeiger auf eine Schnittstellenverweisfunktion, die vom Anzeigeporttreiber implementiert wird.

InterfaceDereference

Ein Zeiger auf eine Schnittstellen-Ableitungsfunktion, die vom Anzeigeporttreiber implementiert wird.

EnumSystemFirmwareTables

Listet die Systemfirmwaretabelle auf. Alle Eingabeparameter werden vom Display miniport-Treiber bereitgestellt.

Syntax:

NTSTATUS EnumSystemFirmwareTables(
  _In_      VOID  *Context,
  _In_      ULONG ProviderSignature,
  _In_      ULONG TableId,
  _In_      ULONG BufferSize,
  _Out_opt_ VOID  *Buffer,
  _Out_     ULONG *RequiredSize
);

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

Der Anbieter für unformatierte Firmwaretabellen ('FIRM') gibt eine Liste DWORD- Tabellenbezeichner 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 zu 0xFFFFF.

Der ACPI-Tabellenanbieter (ACPI) gibt eine Liste DWORD- Tabellenbezeichner zurück. Jeder zurückgegebene Bezeichner entspricht dem Signature Member 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. ReadSystemFirmwareTable ruft jedoch nur die erste Tabelle in der Liste mit diesem Namen ab.

Zusammenhang

Ein Handle zu einem Kontextblock, der einem Anzeigeadapter zugeordnet ist. Die DxgkDdiAddDevice-Funktion des Display-Miniporttreibers hat zuvor dieses Handle für das DirectX-Grafik-Kernel-Subsystem bereitgestellt.

ProviderSignature

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.

TableId

Der Bezeichner der Firmwaretabelle. Dieser Bezeichner ist im kleinen Endian-Format, daher müssen Sie die Zeichen in der Zeichenfolge umkehren.

Beispielsweise ist FACP ein ACPI-Anbieter, wie im Signature Mitglied der DESCRIPTION_HEADER Struktur in der ACPI-Spezifikationbeschrieben. Verwenden Sie daher "PCAF", um die FACP-Tabelle anzugeben, wie im folgenden Beispiel gezeigt:

retVal = ReadSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE);

Puffergröße

Die Größe des Puffers, auf den der Buffer Parameter in Byte verweist.

Puffer

Ein optionaler 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".

RequiredSize

Ein Zeiger auf einen Wert, der die minimale Größe des Puffers empfängt, auf den durch Bufferin Byte verwiesen wird, dass das Betriebssystem die Enumerationsanforderung verarbeiten muss.

ReadSystemFirmwareTable

Liest die Systemfirmwaretabelle. Alle Eingabeparameter werden vom Display miniport-Treiber bereitgestellt.

NTSTATUS ReadSystemFirmwareTable(
  _In_      VOID  *Context,
  _In_      ULONG ProviderSignature,
  _In_      ULONG TableId,
  _In_      ULONG BufferSize,
  _Out_opt_ VOID  *Buffer,
  _Out_     ULONG *RequiredSize
);

Der unformatierte SMBIOS-Tabellenanbieter ('RSMB') ruft den Inhalt der unformatierten SMBIOS-Firmwaretabelle ab. Der puffer, auf den der parameter Buffer verweist, empfängt die folgenden Daten:

#include <windows.h>

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. ReadSystemFirmwareTable gibt die Größe des Adressbereichs zurück.

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 die EnumSystemFirmwareTables-Funktion aufrufen, um alle ACPI-Tabellen auflisten, die sich derzeit im System befinden.

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

Zusammenhang

Ein Handle zu einem Kontextblock, der einem Anzeigeadapter zugeordnet ist. Die DxgkDdiAddDevice-Funktion des Display-Miniporttreibers stellt dieses Handle zuvor für das DirectX-Grafik-Kernel-Subsystem bereit.

ProviderSignature

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.

TableId

Der Bezeichner der Firmwaretabelle. Dieser Bezeichner ist im kleinen Endian-Format, daher müssen Sie die Zeichen in der Zeichenfolge umkehren.

Beispielsweise ist FACP ein ACPI-Anbieter, wie im Signature Mitglied der DESCRIPTION_HEADER Struktur in der ACPI-Spezifikationbeschrieben. Verwenden Sie daher "PCAF", um die FACP-Tabelle anzugeben, wie im folgenden Beispiel gezeigt:

retVal = ReadSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE);

Puffergröße

Die Größe des Puffers, auf den der Buffer Parameter in Byte verweist.

Puffer

Ein optionaler Zeiger auf einen Puffer, der die angeforderte Firmwaretabelle 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".

RequiredSize

Ein Zeiger auf einen Wert, der die Mindestgröße des Puffers empfängt, auf den durch Bufferin Bytes verwiesen wird, auf den das Betriebssystem die Leseanforderung verarbeiten muss.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8
mindestens unterstützte Server- Windows Server 2012
Header- dispmprt.h (include Dispmprt.h)

Siehe auch

EnumSystemFirmwareTables-

ReadSystemFirmwareTable-