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ò avere 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 di tabelle del firmware. Se questo parametro è NULL, il valore scritto in *ReturnLength è la dimensione del buffer necessaria. 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
Alla routine è stato fornito un parametro non valido.
STATUS_BUFFER_TOO_SMALL
Il buffer allocato dal chiamante è troppo piccolo, ma le dimensioni del buffer necessarie sono state scritte nel parametro di output ReturnLength .

Commenti

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 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 rispettivamente la memoria fisica da 0x000C0000 a 0x000DFFFF e da 0x000E0000 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 website.

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.

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 nel 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.

Requisiti

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

Vedi anche

AuxKlibGetSystemFirmwareTable

AuxKlibInitialize

EnumSystemFirmwareTables