Bagikan melalui


Fungsi EnumSystemFirmwareTables (sysinfoapi.h)

Menghitung semua tabel firmware sistem dari jenis yang ditentukan.

Sintaks

UINT EnumSystemFirmwareTables(
  [in]  DWORD FirmwareTableProviderSignature,
  [out] PVOID pFirmwareTableEnumBuffer,
  [in]  DWORD BufferSize
);

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. Tidak didukung untuk sistem UEFI; gunakan 'RSMB' sebagai gantinya.
'RSMB' Penyedia tabel firmware SMBIOS mentah.

[out] pFirmwareTableEnumBuffer

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

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

[in] BufferSize

Ukuran buffer pFirmwareTableBuffer , dalam byte.

Nilai kembali

Jika fungsi berhasil, nilai pengembalian adalah jumlah byte yang ditulis ke buffer. Nilai ini akan selalu kurang dari atau sama dengan BufferSize.

Jika fungsi gagal karena buffer tidak cukup besar, nilai yang dikembalikan adalah ukuran buffer yang diperlukan, dalam byte. Nilai ini selalu lebih besar dari BufferSize.

Jika fungsi gagal karena alasan lain, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Dimulai dengan Windows 10, versi 1803, aplikasi Universal Windows dapat mengakses informasi System Management BIOS (SMBIOS) dengan mendeklarasikan kemampuan terbatas smbios dalam manifes aplikasi. Lihat Mengakses informasi SMBIOS dari Aplikasi Universal Windows untuk detailnya. Hanya tabel firmware SMBIOS (RSMB) mentah yang dapat diakses dari aplikasi Universal Windows.

Pada Windows Server 2003 dengan Paket Layanan 1 (SP1), aplikasi tidak dapat mengakses objek \Device\PhysicalMemory. Akses ke objek ini terbatas pada driver mode kernel. Perubahan ini memengaruhi aplikasi yang membaca System Management BIOS (SMBIOS) atau data BIOS lainnya yang disimpan dalam memori fisik 1MB terendah. Aplikasi memiliki alternatif berikut untuk membaca data dari memori fisik rendah:

  • Ambil properti SMBIOS menggunakan WMI. Banyak properti individu terkandung dalam kelas Win32. Anda juga dapat mengambil data SMBIOS mentah dalam satu buffer menggunakan kelas MSSMBios_RawSMBiosTables .
  • Gunakan fungsi GetSystemFirmwareTable untuk membaca tabel firmware SMBIOS mentah.
Tidak ada cara bagi aplikasi untuk menulis ke memori fisik rendah.

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 untuk 0xFFFFF.

Penyedia tabel ACPI ('ACPI') mengembalikan daftar pengidentifikasi tabel DWORD . Setiap pengidentifikasi yang dikembalikan sesuai dengan bidang 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, GetSystemFirmwareTable hanya mengambil tabel pertama dalam daftar dengan nama ini.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista, Windows XP Professional x64 Edition [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008, Windows Server 2003 dengan SP1 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header sysinfoapi.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

Mengakses informasi SMBIOS dari Aplikasi Universal Windows

GetSystemFirmwareTable

Fungsi Informasi Sistem