struktur DXGK_FIRMWARE_TABLE_INTERFACE (dispmprt.h)

Berisi fungsi yang dapat digunakan driver tampilan mode pengguna untuk membaca dan menghitung tabel firmware sistem. Fungsi-fungsi ini disediakan oleh subsistem kernel grafis Microsoft DirectX dan dapat dipanggil oleh WDDM 1.2 dan driver tampilan mode pengguna yang lebih baru.

Sintaks

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;

Anggota

Size

Ukuran, dalam byte, dari struktur ini.

Version

Nomor versi antarmuka Tabel Firmware Sistem. Konstanta nomor versi ditentukan dalam Dispmprt.h (misalnya, DXGK_FIRMWARE_TABLE_INTERFACE_VERSION_1).

Context

Penunjuk ke konteks yang disediakan oleh driver port tampilan.

InterfaceReference

Penunjuk ke fungsi referensi antarmuka yang diimplementasikan oleh driver port tampilan.

InterfaceDereference

Penunjuk ke fungsi dereferensi antarmuka yang diimplementasikan oleh driver port tampilan.

EnumSystemFirmwareTables

Menghitung tabel firmware sistem. Semua parameter input disediakan oleh driver miniport tampilan.

Sintaks:

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

Penyedia tabel SMBIOS mentah ('RSMB') saat ini mengembalikan pengidentifikasi tabel tunggal, 0x0000. Ini sesuai dengan tabel firmware SMBIOS mentah.

Penyedia tabel firmware mentah ('FIRM') mengembalikan daftar pengidentifikasi tabel DWORD . Setiap pengidentifikasi sesuai dengan awal rentang alamat fisik. Saat ini, penyedia ini mengembalikan 'C0000' dan 'E0000'. Nilai-nilai ini sesuai dengan memori fisik dari 0xC0000 ke 0xDFFFF dan 0xE0000 ke 0xFFFFF.

Penyedia tabel ACPI ('ACPI') mengembalikan daftar pengidentifikasi tabel DWORD . Setiap pengidentifikasi yang dikembalikan sesuai dengan anggota Tanda Tangan dari struktur DESCRIPTION_HEADER untuk tabel ACPI yang saat ini berada di namespace ACPI sistem.

Untuk ACPI, jika sistem berisi beberapa tabel dengan nama yang sama, semuanya dijumlahkan dengan EnumSystemFirmwareTables. Namun, ReadSystemFirmwareTable hanya mengambil tabel pertama dalam daftar dengan nama ini.

Konteks

Handel ke blok konteks yang terkait dengan adaptor tampilan. Fungsi DxgkDdiAddDevice driver miniport tampilan sebelumnya menyediakan handel ini ke subsistem kernel grafis DirectX.

ProviderSignature

Pengidentifikasi penyedia tabel firmware tempat kueri akan diarahkan. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
'ACPI' Penyedia tabel firmware ACPI.
'FIRM' Penyedia tabel firmware mentah.
'RSMB' Penyedia tabel firmware SMBIOS mentah.

TableId

Pengidentifikasi tabel firmware. Pengidentifikasi ini dalam format little-endian, jadi Anda harus membalikkan karakter dalam string.

Misalnya, FACP adalah penyedia ACPI, seperti yang dijelaskan dalam Anggota tanda tangan struktur DESCRIPTION_HEADER dalam spesifikasi ACPI. Oleh karena itu, gunakan 'PCAF' untuk menentukan tabel FACP, seperti yang ditunjukkan dalam contoh berikut:

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

BufferSize

Ukuran buffer yang diacu oleh parameter Buffer , dalam byte.

Buffer

Penunjuk opsional ke buffer yang menerima daftar tabel firmware. Jika parameter ini ADALAH NULL, nilai yang dikembalikan adalah ukuran buffer yang diperlukan.

Untuk informasi selengkapnya tentang konten buffer ini, lihat bagian Keterangan.

Ukuran diperlukan

Pointer ke nilai yang menerima ukuran minimum buffer yang diacu oleh Buffer, dalam byte, yang dibutuhkan sistem operasi untuk memproses permintaan enumerasi.

ReadSystemFirmwareTable

Membaca tabel firmware sistem. Semua parameter input disediakan oleh driver miniport tampilan.

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

Penyedia tabel SMBIOS mentah ('RSMB') mengambil konten tabel firmware SMBIOS mentah. Buffer yang diacu oleh parameter Buffer menerima data berikut:

#include <windows.h>

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

Penyedia tabel firmware mentah ('FIRM') mengambil konten rentang alamat fisik yang ditentukan. ReadSystemFirmwareTable mengembalikan ukuran rentang alamat.

Penyedia tabel ACPI ('ACPI') mengambil konten tabel ACPI yang ditentukan. Karena OEM dapat menyertakan tabel firmware ACPI yang tidak tercantum dalam spesifikasi ACPI, Anda harus terlebih dahulu memanggil fungsi EnumSystemFirmwareTables untuk menghitung semua tabel ACPI yang saat ini ada di sistem.

Untuk ACPI, jika sistem berisi beberapa tabel dengan nama yang sama, semuanya dijumlahkan dengan EnumSystemFirmwareTables. Namun, ReadSystemFirmwareTable hanya mengambil tabel pertama dalam daftar dengan nama ini.

Konteks

Handel ke blok konteks yang terkait dengan adaptor tampilan. Fungsi DxgkDdiAddDevice driver miniport tampilan sebelumnya menyediakan handel ini ke subsistem kernel grafis DirectX.

ProviderSignature

Pengidentifikasi penyedia tabel firmware tempat kueri akan diarahkan. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
'ACPI' Penyedia tabel firmware ACPI.
'FIRM' Penyedia tabel firmware mentah.
'RSMB' Penyedia tabel firmware SMBIOS mentah.

TableId

Pengidentifikasi tabel firmware. Pengidentifikasi ini dalam format little-endian, jadi Anda harus membalikkan karakter dalam string.

Misalnya, FACP adalah penyedia ACPI, seperti yang dijelaskan dalam Anggota tanda tangan struktur DESCRIPTION_HEADER dalam spesifikasi ACPI. Oleh karena itu, gunakan 'PCAF' untuk menentukan tabel FACP, seperti yang ditunjukkan dalam contoh berikut:

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

BufferSize

Ukuran buffer yang diacu oleh parameter Buffer , dalam byte.

Buffer

Penunjuk opsional ke buffer yang menerima tabel firmware yang diminta. Jika parameter ini ADALAH NULL, nilai yang dikembalikan adalah ukuran buffer yang diperlukan.

Untuk informasi selengkapnya tentang konten buffer ini, lihat bagian Keterangan.

Ukuran diperlukan

Penunjuk ke nilai yang menerima ukuran minimum buffer yang diacu oleh Buffer, dalam byte, yang diperlukan sistem operasi untuk memproses permintaan baca.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8
Server minimum yang didukung Windows Server 2012
Header dispmprt.h (termasuk Dispmprt.h)

Lihat juga

EnumSystemFirmwareTables

ReadSystemFirmwareTable