Funzione EnumSystemFirmwareTables (sysinfoapi.h)

Enumera tutte le tabelle del firmware di sistema del tipo specificato.

Sintassi

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

Parametri

[in] FirmwareTableProviderSignature

Identificatore del provider di tabelle del firmware a cui deve essere indirizzata la query. Questo parametro può avere uno dei valori seguenti.

Valore Significato
'ACPI' Provider di tabelle del firmware ACPI.
'FIRM' Provider di tabelle del firmware non elaborato. Non supportato per i sistemi UEFI; usare invece 'RSMB'.
'RSMB' Provider di tabelle del firmware SMBIOS non elaborato.

[out] pFirmwareTableEnumBuffer

Puntatore a un buffer che riceve l'elenco di tabelle del firmware. Se questo parametro è NULL, il valore restituito è la dimensione del buffer necessaria.

Per altre informazioni sul contenuto di questo buffer, vedere la sezione Osservazioni.

[in] BufferSize

Dimensioni del buffer pFirmwareTableBuffer , in byte.

Valore restituito

Se la funzione ha esito positivo, il valore restituito corrisponde al numero di byte scritti nel buffer. Questo valore sarà sempre minore o uguale a BufferSize.

Se la funzione ha esito negativo perché il buffer non è sufficientemente grande, il valore restituito è la dimensione del buffer necessaria, in byte. Questo valore è sempre maggiore di BufferSize.

Se la funzione ha esito negativo per qualsiasi altro motivo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

A partire da Windows 10 versione 1803, le app di Windows universali possono accedere alle informazioni DEL BIOS (SMBIOS) di Gestione sistema dichiarando la funzionalità con restrizioni smbios nel manifesto dell'app. Per informazioni dettagliate, vedere Accedere alle informazioni SMBIOS da un'app di Windows universale . È possibile accedere solo alle tabelle del firmware SMBIOS (RSMB) non elaborate da un'app di Windows universale.

A partire da Windows Server 2003 con Service Pack 1 (SP1), le applicazioni non possono accedere all'oggetto \Device\PhysicalMemory. L'accesso a questo oggetto è limitato ai driver in modalità kernel. Questa modifica influisce sulle applicazioni che leggono IL BIOS (SMBIOS) o altri dati BIOS archiviati nella memoria fisica più bassa di 1 MB. Le applicazioni hanno le alternative seguenti per leggere i dati dalla memoria fisica insufficiente:

  • Recuperare le proprietà SMBIOS usando WMI. Molte proprietà singole sono contenute nelle classi Win32. È anche possibile recuperare i dati SMBIOS non elaborati in un singolo buffer usando la classe MSSMBios_RawSMBiosTables .
  • Usare la funzione GetSystemFirmwareTable per leggere la tabella del firmware SMBIOS non elaborata.
Non esiste alcun modo per consentire alle applicazioni di scrivere in memoria fisica insufficiente.

Il provider di tabelle SMBIOS non elaborato ('RSMB') restituisce attualmente un singolo identificatore di tabella, 0x0000. Corrisponde alla tabella del firmware SMBIOS non elaborata.

Il provider di tabelle del firmware non elaborato ('FIRM') restituisce un elenco di identificatori di tabella DWORD . Ogni identificatore corrisponde all'inizio di un intervallo di indirizzi fisici. Attualmente, questo provider restituisce 'C0000' e 'E0000'. Questi valori corrispondono alla memoria fisica da 0xC0000 a 0xDFFFF e 0xE0000 rispettivamente a 0xFFFFF.

Il provider di tabelle ACPI ('ACPI') restituisce un elenco di identificatori di tabella DWORD . Ogni identificatore restituito corrisponde al campo Firma della struttura DESCRIPTION_HEADER per una tabella ACPI attualmente nello spazio dei nomi ACPI del sistema.

Per ACPI, se il sistema contiene più tabelle con lo stesso nome, vengono tutte enumerate con EnumSystemFirmwareTables. GetSystemFirmwareTable recupera tuttavia solo la prima tabella nell'elenco con questo nome.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista, Windows XP Professional x64 Edition [app desktop | App UWP]
Server minimo supportato Windows Server 2008, Windows Server 2003 con SP1 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione sysinfoapi.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Accedere alle informazioni SMBIOS da un'app di Windows universale

GetSystemFirmwareTable

Funzioni di informazioni di sistema