Função AuxKlibGetSystemFirmwareTable (aux_klib.h)

A rotina AuxKlibGetSystemFirmwareTable recupera a tabela de firmware especificada do provedor de tabelas de firmware.

Sintaxe

NTSTATUS AuxKlibGetSystemFirmwareTable(
  [in]            ULONG  FirmwareTableProviderSignature,
  [in]            ULONG  FirmwareTableID,
  [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.

[in] FirmwareTableID

O identificador da tabela de firmware. Os caracteres no identificador estão em ordem little-endian.

Por exemplo, FACP é o nome de uma tabela fornecida pelo ACPI. A tabela FACP é identificada pelo valor de 4 bytes 'PCAF' (0x50434146) no campo Assinatura da estrutura DESCRIPTION_HEADER no início da tabela. O exemplo de código a seguir mostra como especificar FACP em uma chamada AuxKlibGetSystemFirmwareTable :

status = AuxKlibGetSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE, &dataSize);

Neste exemplo, pBuffer aponta para o buffer alocado pelo chamador, BUFSIZE é o tamanho em bytes desse buffer e dataSize é uma variável na qual a rotina grava o número de bytes gravados no buffer. Para obter mais informações sobre a estrutura DESCRIPTION_HEADER , consulte a Configuração Avançada e a Especificação da Interface do Power no site configuração avançada e power interface .

[out, optional] FirmwareTableBuffer

Um ponteiro para um buffer alocado pelo chamador que recebe 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

AuxKlibGetSystemFirmwareTable 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

O provedor de tabela SMBIOS bruto ('RSMB') recupera o conteúdo da tabela de firmware SMBIOS bruta. Os dados gravados no buffer FirmwareTableBuffer começam com a seguinte estrutura:

struct RawSMBIOSData
{
  BYTE  Used20CallingMethod;
  BYTE  SMBIOSMajorVersion;
  BYTE  SMBIOSMinorVersion;
  BYTE  DmiRevision;
  DWORD  Length;
  BYTE  SMBIOSTableData[];
};

O provedor de tabela de firmware bruto ('FIRM') recupera o conteúdo do intervalo de endereços físicos especificado. O valor gravado em *ReturnLength é o tamanho do intervalo de endereços.

O provedor de tabelas ACPI ('ACPI') recupera o conteúdo da tabela ACPI especificada. Como os OEMs podem incluir tabelas de firmware acpi que não estão listadas na especificação acpi, você deve primeiro chamar AuxKlibEnumerateSystemFirmwareTables para enumerar todas as tabelas ACPI que estão disponíveis no momento no firmware do sistema.

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.

AuxKlibGetSystemFirmwareTable é o equivalente ao modo kernel da função GetSystemFirmwareTable do Win32.

Os drivers devem chamar AuxKlibInitialize antes de chamar AuxKlibGetSystemFirmwareTable.

AuxKlibGetSystemFirmwareTable é 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 AuxKlibGetSystemFirmwareTable 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

AuxKlibEnumerateSystemFirmwareTables

AuxKlibInitialize

GetSystemFirmwareTable