Condividi tramite


Funzione AuxKlibEnumerateSystemFirmwareTables (aux_klib.h)

La routine AuxKlibEnumerateSystemFirmwareTables enumera tutte le tabelle del firmware di sistema del tipo specificato.

Sintassi

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

Parametri

[in] FirmwareTableProviderSignature

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

Valore Significato
'ACPI' Provider di tabelle del firmware ACPI.
'FIRM' Provider di tabelle del firmware non elaborato.
'RSMB' Provider di tabelle del firmware SMBIOS non elaborato.

[out, optional] FirmwareTableBuffer

Puntatore a un buffer allocato dal chiamante in cui la routine scrive l'elenco delle tabelle del firmware. Se questo parametro è NULL, il valore scritto in *ReturnLength è la dimensione del buffer richiesta. Per altre informazioni sul contenuto di questo buffer, vedere la sezione Osservazioni.

[in] BufferLength

Dimensioni, in byte, del buffer a cui punta FirmwareTableBuffer.

[out, optional] ReturnLength

Puntatore a una posizione in cui la routine scrive il numero di byte di dati scritti nel buffer a cui punta FirmwareTableBuffer.

Valore restituito

AuxKlibEnumerateSystemFirmwareTables restituisce STATUS_SUCCESS se la chiamata ha esito positivo. I valori restituiti possibili includono i codici di errore seguenti.

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
È stato fornito un parametro non valido alla routine.
STATUS_BUFFER_TOO_SMALL
Il buffer allocato dal chiamante è troppo piccolo, ma le dimensioni necessarie del buffer sono state scritte nel parametro di output ReturnLength.

Osservazioni

Se la chiamata ha esito positivo, questa routine scrive una matrice di uno o più identificatori di tabella nel buffer a cui punta il parametro FirmwareTableBuffer. Ogni elemento di questa matrice è un valore DWORD che identifica una tabella del firmware disponibile dal provider specificato dal parametro FirmwareTableProviderSignature.

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

Il provider di tabelle del firmware non elaborato ('FIRM') recupera un elenco di identificatori di tabella DWORD. Ogni identificatore corrisponde all'inizio di un intervallo di indirizzi fisici. Attualmente, questo provider restituisce due identificatori, 0x000C0000 e 0x000E0000. Questi identificatori rappresentano la memoria fisica da 0x000C0000 a 0x000DFFFF e da 0x000E0000 rispettivamente a 0x000FFFFF.

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 altre informazioni su questa struttura, vedere Advanced Configuration and Power Interface Specification nel sito Web Advanced Configuration and Power Interface.For more information about this structure, see the Advanced Configuration and Power Interface Specification at the Advanced Configuration and Power Interface.

Per ACPI, se il firmware di sistema contiene più tabelle con lo stesso nome, AuxKlibEnumerateSystemFirmwareTables li enumera tutti. Tuttavia, AuxKlibGetSystemFirmwareTable recupera solo la prima tabella nell'elenco con questo nome.

AuxKlibEnumerateSystemFirmwareTables è l'equivalente in modalità kernel della funzione Win32 EnumSystemFirmwareTables.

I driver devono chiamare AuxKlibInitialize prima di chiamare AuxKlibEnumerateSystemFirmwareTable.

il file di intestazione AuxKlibEnumerateSystemFirmwareTables è definito nel file di intestazione Aux_klib.h incluso in WDK per Windows 8 e versioni successive di Windows. Per usare questa routine, i driver devono essere collegati alla versione di Aux_klib.lib inclusa in WDK per Windows 8 e versioni successive di Windows. L'implementazione di AuxKlibEnumerateSystemFirmwareTables in queste versioni di WDK può essere usata nelle versioni di Windows a partire da Windows Vista.

Fabbisogno

Requisito Valore
client minimo supportato Supportato a partire da Windows Vista.
piattaforma di destinazione Universale
intestazione aux_klib.h (includere Aux_klib.h)
libreria Aux_Klib.lib
IRQL PASSIVE_LEVEL

Vedere anche

AuxKlibGetSystemFirmwareTable

AuxKlibInitialize

EnumSystemFirmwareTables