Função AuxKlibEnumerateSystemFirmwareTables (aux_klib.h)

A rotina AuxKlibEnumerateSystemFirmwareTables enumera todas as tabelas de firmware do sistema do tipo especificado.

Sintaxe

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

Parâmetros

[in] FirmwareTableProviderSignature

O identificador do provedor de tabelas de firmware para o qual a consulta deve ser direcionada. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
'ACPI' O provedor de tabela de firmware do ACPI.
'FIRM' O provedor de tabela de firmware bruto.
'RSMB' O provedor de tabela de firmware SMBIOS bruto.

[out, optional] FirmwareTableBuffer

Um ponteiro para um buffer alocado pelo chamador no qual a rotina grava a lista de tabelas de firmware. Se esse parâmetro for NULL, o valor gravado em *ReturnLength será o tamanho do buffer necessário. Para obter mais informações sobre o conteúdo desse buffer, consulte a seção Comentários.

[in] BufferLength

O tamanho, em bytes, do buffer apontado por FirmwareTableBuffer.

[out, optional] ReturnLength

Um ponteiro para um local no qual a rotina grava o número de bytes de dados gravados no buffer apontado por FirmwareTableBuffer.

Retornar valor

AuxKlibEnumerateSystemFirmwareTables retornará STATUS_SUCCESS se a chamada for bem-sucedida. Os possíveis valores retornados incluem os seguintes códigos de erro.

Código de retorno Descrição
STATUS_INVALID_PARAMETER
Um parâmetro inválido foi fornecido à rotina.
STATUS_BUFFER_TOO_SMALL
O buffer alocado pelo chamador é muito pequeno, mas o tamanho do buffer necessário foi gravado no parâmetro de saída ReturnLength .

Comentários

Se a chamada for bem-sucedida, essa rotina gravará uma matriz de um ou mais identificadores de tabela no buffer apontado pelo parâmetro FirmwareTableBuffer . Cada elemento dessa matriz é um valor DWORD que identifica uma tabela de firmware que está disponível no provedor especificado pelo parâmetro FirmwareTableProviderSignature .

O provedor de tabela SMBIOS bruto ('RSMB') atualmente retorna um único identificador de tabela, 0x00000000. Isso corresponde à tabela de firmware SMBIOS bruta.

O provedor de tabela de firmware bruto ('FIRM') recupera uma lista de identificadores de tabela DWORD. Cada identificador corresponde ao início de um intervalo de endereços físicos. Atualmente, esse provedor retorna dois identificadores, 0x000C0000 e 0x000E0000. Esses identificadores representam memória física de 0x000C0000 para 0x000DFFFF e de 0x000E0000 para 0x000FFFFF, respectivamente.

O provedor de tabelas ACPI ('ACPI') retorna uma lista de identificadores de tabela DWORD. Cada identificador retornado corresponde ao campo Assinatura da estrutura DESCRIPTION_HEADER para uma tabela ACPI atualmente no namespace ACPI do sistema. Para obter mais informações sobre essa estrutura, consulte Configuração Avançada e Especificação da Interface do Power no site configuração avançada e power interface .

Para ACPI, se o firmware do sistema contiver várias tabelas com o mesmo nome, AuxKlibEnumerateSystemFirmwareTables enumera todas elas. No entanto, AuxKlibGetSystemFirmwareTable recupera apenas a primeira tabela da lista que tem esse nome.

AuxKlibEnumerateSystemFirmwareTables é o equivalente ao modo kernel da função Win32 EnumSystemFirmwareTables .

Os drivers devem chamar AuxKlibInitialize antes de chamar AuxKlibEnumerateSystemFirmwareTable.

AuxKlibEnumerateSystemFirmwareTables é definido no arquivo de cabeçalho Aux_klib.h incluído no WDK para Windows 8 e versões posteriores do Windows. Para usar essa rotina, os drivers devem vincular à versão do Aux_klib.lib incluída no WDK para Windows 8 e versões posteriores do Windows. A implementação de AuxKlibEnumerateSystemFirmwareTables nessas versões do WDK pode ser usada em versões do Windows começando com o Windows Vista.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte a partir do Windows Vista.
Plataforma de Destino Universal
Cabeçalho aux_klib.h (inclua Aux_klib.h)
Biblioteca Aux_Klib.lib
IRQL PASSIVE_LEVEL

Confira também

AuxKlibGetSystemFirmwareTable

AuxKlibInitialize

EnumSystemFirmwareTables