Partilhar via


Compilador Microsoft ASL

Versão 5.0 do compilador Microsoft ACPI source language (ASL) suporta os recursos na Advanced Configuration and Power Interface Specification, Revision 5.0 (ACPI 5.0 specification). O compilador ASL é distribuído com o Windows Driver Kit (WDK).

Baixe o Kit de Driver do Windows (WDK)

O compilador ASL (asl.exe) está localizado nos diretórios Tools\arm\ACPIVerify, Tools\arm64\ACPIVerify, Tools\x86\ACPIVerify e Tools\x64\ACPIVerify do WDK instalado, por exemplo, C:\Program Files (x86)\Windows Kits\10\Tools\<build #>\<build architecture>\ACPIVerify.

Você precisa primeiro instalar o SDK, seguido pelo WDK. Os números de construção para os dois kits devem corresponder.

Opções da linha de comandos

O compilador ASL suporta várias opções de linha de comando. Para listar informações de versão e opções de linha de comando disponíveis, execute o comando "asl /?" em uma janela do Prompt de Comando.

Uso do compilador ASL

O compilador ASL suporta as seguintes opções de linha de comando:

asl /?
asl [/nologo] /d <BinFile>
asl [/nologo] /u [/Fa=<ASMFile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>] <AMLFile>
asl [/nologo] /tab=<TabSig> [/c] [/Fa=<ASMfile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>]
asl [/nologo] [/Fo=<AMLFile>] [/Fa=<ASMFile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>] <ASLFile>
Option Description
? Imprima esta mensagem de ajuda.
nologo Suprima o banner do logotipo.
Fo=<AMLFile> Substitua o nome do arquivo AML no DefinitionBlock.
Fa=<ASMFile> Gere um arquivo . ASM com o nome <ASMFile>.
Fn=<NSDFile> Gere um arquivo NameSpace Dump com o nome <NSDFile>.
d Despeje o arquivo binário em forma de texto.
u Desmonte um arquivo AML em um arquivo . ASL (padrão) ou um arquivo . Arquivo LST.
tab=<TabSig> Desmonte a tabela ASL em um arquivo . ASL (padrão) ou um arquivo . Arquivo LST. Despeje uma tabela não-ASL em um arquivo .TXT. Se <TabSig> for '*', todas as tabelas serão despejadas para ACPI.TXT. <TabSig> também pode ser o endereço físico da tabela.
c Crie arquivos binários a partir de tabelas.

Usando o recurso ACPI-table-load do compilador Microsoft ASL

Durante o desenvolvimento do sistema, é útil ter uma maneira de simular várias construções de BIOS ACPI e testá-las no sistema de desenvolvimento. O sistema operacional Windows permite que determinadas tabelas ACPI sejam carregadas a partir do registro do Windows em vez de da ROM do BIOS do PC. O uso desse recurso requer privilégios de administrador e também requer que a assinatura de teste esteja habilitada no sistema. Em sistemas que suportam a Inicialização Segura UEFI, a assinatura de teste não pode ser habilitada e o recurso de carregamento de tabela do compilador não pode ser usado, a menos que a Inicialização Segura UEFI esteja desabilitada ou a Política de Depuração do Windows esteja instalada no sistema.

Para usar o recurso de carregamento de tabela, a tabela ACPI a ser sobrecarregada deve atender aos seguintes requisitos:

  • A tabela a ser sobrecarregada já deve estar presente na ROM do BIOS do sistema. Por exemplo, o DSDT pode estar sobrecarregado; no entanto, se a máquina não tiver um SSDT, você não pode forçar um SSDT a ser carregado a partir desse mecanismo de substituição de registro.

  • A tabela deve conter o código AML que é normalmente consumido pelo interpretador ACPI do Windows (o driver Acpi.sys).

  • A tabela com o número de versão mais alto é carregada. A tabela carregada no registro para teste deve ter um número de versão maior do que a mesma tabela na ROM do BIOS.

  • A tabela a ser carregada deve estar em formato compilado (AML) e carregada no registro no local correto, com os parâmetros corretos especificados. O mecanismo descrito foi projetado para lidar com todos os aspetos de carregamento da tabela e configuração do registro.

Warning

O processo descrito neste tópico pode deixar seu sistema Windows em um estado não inicializável. Certifique-se de ter acesso a outro sistema operacional com suporte ao sistema de arquivos NTFS (ou seja, uma "compilação segura") na mesma máquina antes de tentar os procedimentos descritos aqui. Este processo é fornecido apenas para desenvolvedores e testadores de sistemas e NÃO deve ser usado em nenhuma máquina vital para fins de desenvolvimento ou produção.

ACPI-table-load usage

Para carregar uma tabela ACPI no registro para fins de teste, o compilador ASL é invocado da seguinte maneira:

asl.exe /loadtable [-v] [-d] <AMLFile>

Onde AMLFile é o nome do arquivo AML compilado que contém a tabela que você deseja carregar no registro.

Option Description
-v Verbose mode. Ativa a saída de depuração extra do utilitário.
-d Delete. Remove um arquivo AML carregado anteriormente do Registro e exclui todas as chaves do Registro associadas.

More resources