Bagikan melalui


Fungsi AuxKlibGetSystemFirmwareTable (aux_klib.h)

Rutinitas AuxKlibGetSystemFirmwareTable mengambil tabel firmware yang ditentukan dari penyedia tabel firmware.

Sintaks

NTSTATUS AuxKlibGetSystemFirmwareTable(
  [in]            ULONG  FirmwareTableProviderSignature,
  [in]            ULONG  FirmwareTableID,
  [out, optional] PVOID  FirmwareTableBuffer,
  [in]            ULONG  BufferLength,
  [out, optional] PULONG ReturnLength
);

Parameter

[in] FirmwareTableProviderSignature

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.

[in] FirmwareTableID

Pengidentifikasi tabel firmware. Karakter dalam pengidentifikasi berada dalam urutan little-endian.

Misalnya, FACP adalah nama tabel yang disediakan oleh ACPI. Tabel FACP diidentifikasi dengan nilai 4 byte 'PCAF' (0x50434146) di bidang Tanda Tangan struktur DESCRIPTION_HEADER di awal tabel. Contoh kode berikut menunjukkan cara menentukan FACP dalam panggilan AuxKlibGetSystemFirmwareTable :

status = AuxKlibGetSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE, &dataSize);

Dalam contoh ini, pBuffer menunjuk ke buffer yang dialokasikan pemanggil, BUFSIZE adalah ukuran dalam byte buffer ini, dan dataSize merupakan variabel di mana rutin menulis jumlah byte yang ditulis ke buffer. Untuk informasi selengkapnya tentang struktur DESCRIPTION_HEADER , lihat Konfigurasi Tingkat Lanjut dan Spesifikasi Antarmuka Daya di situs web Konfigurasi Tingkat Lanjut dan Antarmuka Daya .

[out, optional] FirmwareTableBuffer

Penunjuk ke buffer yang dialokasikan pemanggil yang menerima daftar tabel firmware. Jika parameter ini NULL, nilai yang ditulis ke *ReturnLength adalah ukuran buffer yang diperlukan. Untuk informasi selengkapnya tentang konten buffer ini, lihat bagian Keterangan.

[in] BufferLength

Ukuran, dalam byte, dari buffer yang diacu oleh FirmwareTableBuffer.

[out, optional] ReturnLength

Penunjuk ke lokasi tempat rutin menulis jumlah byte data yang ditulis ke buffer yang ditujukkan oleh FirmwareTableBuffer.

Mengembalikan nilai

AuxKlibGetSystemFirmwareTable mengembalikan STATUS_SUCCESS jika panggilan berhasil. Nilai yang mungkin dikembalikan termasuk kode kesalahan berikut.

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER
Parameter yang tidak valid diberikan ke rutinitas.
STATUS_BUFFER_TOO_SMALL
Buffer yang dialokasikan pemanggil terlalu kecil, tetapi ukuran buffer yang diperlukan telah ditulis ke parameter output ReturnLength .

Keterangan

Penyedia tabel SMBIOS mentah ('RSMB') mengambil konten tabel firmware SMBIOS mentah. Data yang ditulis ke buffer FirmwareTableBuffer dimulai dengan struktur berikut:

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. Nilai yang ditulis ke *ReturnLength adalah 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 AuxKlibEnumerateSystemFirmwareTables untuk menghitung semua tabel ACPI yang saat ini tersedia dari firmware sistem.

Untuk ACPI, jika firmware sistem berisi beberapa tabel dengan nama yang sama, AuxKlibEnumerateSystemFirmwareTables menghitung semuanya. Namun, AuxKlibGetSystemFirmwareTable hanya mengambil tabel pertama dalam daftar yang memiliki nama ini.

AuxKlibGetSystemFirmwareTable setara dengan fungsi Win32 GetSystemFirmwareTable .

Driver harus memanggil AuxKlibInitialize sebelum memanggil AuxKlibGetSystemFirmwareTable.

AuxKlibGetSystemFirmwareTable ditentukan dalam file header Aux_klib.h yang disertakan dalam WDK untuk Windows 8 dan versi Windows yang lebih baru. Untuk menggunakan rutinitas ini, driver harus menautkan ke versi Aux_klib.lib yang disertakan dalam WDK untuk windows versi Windows 8 dan yang lebih baru. Implementasi AuxKlibGetSystemFirmwareTable dalam versi WDK ini dapat digunakan dalam versi Windows yang dimulai dengan Windows Vista.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung dimulai dengan Windows Vista.
Target Platform Universal
Header aux_klib.h (termasuk Aux_klib.h)
Pustaka Aux_Klib.lib
IRQL PASSIVE_LEVEL

Lihat juga

AuxKlibEnumerateSystemFirmwareTables

AuxKlibInitialize

GetSystemFirmwareTable