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