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 tabela de firmware para o qual a consulta deve ser direcionada. Esse parâmetro pode ser um dos valores a seguir.
Valor | Significado |
---|---|
'ACPI' | O provedor de tabela de firmware 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 de Energia no site de Configuração Avançada e Power Interface.
[out, optional] FirmwareTableBuffer
Um ponteiro para um buffer alocado por 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.
Valor de retorno
AuxKlibGetSystemFirmwareTable retornará STATUS_SUCCESS se a chamada for bem-sucedida. Os valores de retorno possíveis incluem os seguintes códigos de erro.
Código de retorno | Descrição |
---|---|
|
Um parâmetro inválido foi fornecido à rotina. |
|
O buffer alocado pelo chamador é muito pequeno, mas o tamanho do buffer necessário foi gravado no parâmetro de saída ReturnLength. |
Observações
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ísico especificado. O valor gravado em * ReturnLength é o tamanho do intervalo de endereços.
O provedor de tabela 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 de ACPI, você deve primeiro chamar AuxKlibEnumerateSystemFirmwareTables para enumerar todas as tabelas ACPI que estão disponíveis atualmente 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 do modo kernel da função de GetSystemFirmwareTable 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 se 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 |
---|---|
de cliente com suporte mínimo | Com suporte a partir do Windows Vista. |
da Plataforma de Destino | Universal |
cabeçalho | aux_klib.h (incluir Aux_klib.h) |
biblioteca | Aux_Klib.lib |
IRQL | PASSIVE_LEVEL |