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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk