共用方式為


DXGK_FIRMWARE_TABLE_INTERFACE 結構 (dispmprt.h)

包含使用者模式顯示驅動程式可用來讀取和列舉系統韌體數據表的函式。 這些函式是由 Microsoft DirectX 圖形核心子系統提供,可由 WDDM 1.2 和更新版本的使用者模式顯示驅動程式呼叫。

語法

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;

成員

Size

這個 結構的大小,以位元組為單位。

Version

系統韌體數據表介面的版本號碼。 版本號碼常數定義於 Dispmprt.h (,例如 DXGK_FIRMWARE_TABLE_INTERFACE_VERSION_1) 。

Context

顯示埠驅動程式提供之內容的指標。

InterfaceReference

介面參考函式的指標,由顯示埠驅動程序實作。

InterfaceDereference

介面取值函式的指標,由顯示埠驅動程序實作。

EnumSystemFirmwareTables

列舉系統韌體數據表。 顯示迷你埠驅動程式會提供所有輸入參數。

語法:

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

原始SMBIOS資料表提供者 (『RSMB』) 目前會傳回單一數據表標識碼,0x0000。 這會對應至原始SMBIOS韌體數據表。

原始韌體數據表提供者 (『FIRM』) 會傳回 DWORD 資料表標識碼的清單。 每個標識碼都會對應到實體位址範圍的開頭。 目前,此提供者會傳回 『C0000』 和 『E0000』。 這些值分別對應到0xC0000到0xDFFFF的實體記憶體,以及分別對應至0xFFFFF 0xE0000。

ACPI 資料表提供者 (『ACPI』) 會傳回 DWORD 資料表標識碼的清單。 傳回的每個標識碼都會對應至目前位於系統 ACPI 命名空間中 ACPI 數據表之DESCRIPTION_HEADER結構的 Signature 成員。

針對 ACPI,如果系統包含多個具有相同名稱的數據表,則會以 EnumSystemFirmwareTables 列舉它們。 不過,ReadSystemFirmwareTable 只會擷取清單中具有此名稱的第一個數據表。

Context

與顯示配接器相關聯的內容區塊句柄。 顯示迷你埠驅動程式的 DxgkDdiAddDevice 函式先前已將此句柄提供給 DirectX 圖形核心子系統。

ProviderSignature

要導向查詢之韌體數據表提供者的標識符。 此參數可以是下列其中一個值。

ReplTest1 意義
'ACPI' ACPI 韌體數據表提供者。
'FIRM' 原始韌體數據表提供者。
'RSMB' 原始SMBIOS韌體資料表提供者。

TableId

韌體數據表的標識碼。 此識別碼格式為小到大,因此您必須反轉字串中的字元。

例如,FACP 是 ACPI 提供者,如 ACPI 規格DESCRIPTION_HEADER結構的章成員所述。 因此,使用 'PCAF' 來指定 FACP 數據表,如下列範例所示:

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

BufferSize

Buffer 參數指向的緩衝區大小,以位元組為單位。

Buffer

接收韌體數據表清單之緩衝區的選擇性指標。 如果此參數為 NULL,則傳回值是所需的緩衝區大小。

如需此緩衝區內容的詳細資訊,請參閱一節。

RequiredSize

值的指標,接收 Buffer 所指向之緩衝區大小下限的指標,以位元組為單位,操作系統必須處理列舉要求。

ReadSystemFirmwareTable

讀取系統韌體數據表。 顯示迷你埠驅動程式會提供所有輸入參數。

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

原始SMBIOS資料表提供者 (『RSMB』) 擷取原始 SMBIOS 韌體資料表的內容。 Buffer 參數指向的緩衝區會收到下列數據:

#include <windows.h>

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

原始韌體數據表提供者 (『FIRM』) 擷取指定實體位址範圍的內容。 ReadSystemFirmwareTable 會傳回位址範圍的大小。

ACPI 數據表提供者 (『ACPI』) 擷取指定 ACPI 數據表的內容。 因為 OEM 可以包含 ACPI 規格中未列出的 ACPI 韌體數據表,所以您應該先呼叫 EnumSystemFirmwareTables 函式來列舉目前在系統上的所有 ACPI 數據表。

針對 ACPI,如果系統包含多個具有相同名稱的數據表,則會以 EnumSystemFirmwareTables 列舉它們。 不過,ReadSystemFirmwareTable 只會擷取清單中具有此名稱的第一個數據表。

Context

與顯示配接器相關聯的內容區塊句柄。 顯示迷你埠驅動程式的 DxgkDdiAddDevice 函式先前已將此句柄提供給 DirectX 圖形核心子系統。

ProviderSignature

要導向查詢之韌體數據表提供者的標識符。 此參數可以是下列其中一個值。

ReplTest1 意義
'ACPI' ACPI 韌體數據表提供者。
'FIRM' 原始韌體數據表提供者。
'RSMB' 原始SMBIOS韌體資料表提供者。

TableId

韌體數據表的標識碼。 此識別碼格式為小到大,因此您必須反轉字串中的字元。

例如,FACP 是 ACPI 提供者,如 ACPI 規格DESCRIPTION_HEADER結構的章成員所述。 因此,使用 'PCAF' 來指定 FACP 數據表,如下列範例所示:

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

BufferSize

Buffer 參數指向的緩衝區大小,以位元組為單位。

Buffer

接收所要求韌體數據表之緩衝區的選擇性指標。 如果此參數為 NULL,則傳回值是所需的緩衝區大小。

如需此緩衝區內容的詳細資訊,請參閱一節。

RequiredSize

值指標,接收 Buffer 所指向之緩衝區大小下限的指標,以位元組為單位,操作系統必須處理讀取要求。

規格需求

需求
最低支援的用戶端 Windows 8
最低支援的伺服器 Windows Server 2012
標頭 dispmprt.h (包含 Dispmprt.h)

另請參閱

EnumSystemFirmwareTables

ReadSystemFirmwareTable