Compartilhar via


Acpi.sys (driver ACPI do Windows)

O driver ACPI do Windows, Acpi.sys, é um componente da caixa de entrada do sistema operacional Windows. As responsabilidades de Acpi.sys incluem suporte para gerenciamento de energia e enumeração de dispositivos Plug and Play (PnP). Em plataformas de hardware que têm um BIOS ACPI, o HAL faz com que Acpi.sys sejam carregados durante a inicialização do sistema na base da árvore de dispositivos. Acpi.sys atua como a interface entre o sistema operacional e o BIOS ACPI. Acpi.sys é transparente para os outros drivers na árvore de dispositivos.

Outras tarefas executadas por Acpi.sys em uma plataforma de hardware específica podem incluir a reprogramação dos recursos para uma porta COM ou a ativação do controlador USB para ativação do sistema.

Neste tópico

Dispositivos ACPI

O fornecedor da plataforma de hardware especifica uma hierarquia de namespaces ACPI no BIOS ACPI para descrever a topologia de hardware da plataforma. Para obter mais informações, consulte Hierarquia de namespace ACPI.

Para cada dispositivo descrito na hierarquia de namespace ACPI, o driver ACPI do Windows, Acpi.sys, cria um objeto de dispositivo de filtro (filtro DO) ou um objeto de dispositivo físico (PDO). Se o dispositivo estiver integrado à placa do sistema, Acpi.sys criará um objeto de dispositivo de filtro, representando um filtro de barramento ACPI, e o conectará à pilha de dispositivos imediatamente acima do driver de barramento (PDO). Para outros dispositivos descritos no namespace ACPI, mas não na placa do sistema, Acpi.sys cria o PDO. Acpi.sys fornece gerenciamento de energia e recursos PnP para a pilha de dispositivos com esses objetos de dispositivo. Para obter mais informações, consulte Pilhas de dispositivos para um dispositivo ACPI.

Um dispositivo para o qual Acpi.sys cria um objeto de dispositivo é chamado de dispositivo ACPI. O conjunto de dispositivos ACPI varia de uma plataforma de hardware para outra e depende do BIOS ACPI e da configuração da placa-mãe. Acpi.sys carrega um filtro de barramento ACPI somente para um dispositivo descrito no namespace ACPI e está permanentemente conectado à plataforma de hardware (normalmente, esse dispositivo é integrado ao silício principal ou soldado à placa do sistema). Nem todos os dispositivos da placa-mãe têm um filtro de barramento ACPI.

Toda a funcionalidade ACPI é transparente para drivers de nível superior. Esses drivers não devem fazer suposições sobre a presença ou ausência de um filtro ACPI em qualquer pilha de dispositivos específica.

Acpi.sys e o BIOS ACPI suportam as funções básicas de um dispositivo ACPI. Para melhorar a funcionalidade de um dispositivo ACPI, o fornecedor do dispositivo pode fornecer um driver de função WDM. Para obter mais informações, consulte Operação de um driver de função de dispositivo ACPI.

Um dispositivo ACPI é especificado por um bloco de definição nas tabelas de descrição do sistema no BIOS ACPI. O bloco de definição de um dispositivo especifica, entre outras coisas, uma região de operação, que é um bloco contíguo de memória do dispositivo que é usado para acessar os dados do dispositivo. Somente Acpi.sys modifica os dados em uma região de operação. O driver de função do dispositivo pode ler os dados em uma região de operação, mas não deve modificar os dados. Quando chamado, um manipulador de região de operação transfere bytes na região de operação de e para o buffer de dados em Acpi.sys. A operação combinada do driver de função e do Acpi.sys é específica do dispositivo e é definida no BIOS ACPI pelo fornecedor do hardware. Em geral, o driver de função e o Acpi.sys acessar áreas específicas em uma região de operação para executar operações específicas do dispositivo e recuperar informações. Para obter mais informações, consulte Dando suporte a uma região de operação.

Métodos de controlo ACPI

Os métodos de controle ACPI são objetos de software que declaram e definem operações simples para consultar e configurar dispositivos ACPI. Os métodos de controle são armazenados no BIOS ACPI e são codificados em um formato de código de bytes chamado linguagem de máquina ACPI (AML). Os métodos de controle para um dispositivo são carregados do firmware do sistema para o namespace ACPI do dispositivo na memória e interpretados pelo driver ACPI do Windows, Acpi.sys.

Para invocar um método de controle, o driver de modo kernel para um dispositivo ACPI inicia uma solicitação IRP_MJ_DEVICE_CONTROL , que é manipulada por Acpi.sys. Para drivers carregados em dispositivos enumerados ACPI, o Acpi.sys sempre implementa o objeto de dispositivo físico (PDO) na pilha de drivers. Para obter mais informações, consulte Avaliando métodos de controle ACPI.

Especificação ACPI

A especificação de configuração avançada e interface de energia (especificação ACPI 6.4) está disponível no site do Fórum de Interface de Firmware Extensível Unificada.

A revisão 5.0 da especificação ACPI introduz um conjunto de recursos para suportar PCs móveis de baixo consumo de energia que são baseados em circuitos integrados System on Chip (SoC) e que implementam o modelo de energia de espera conectada. A partir do Windows 8, o driver ACPI do Windows, Acpi.sys, oferece suporte aos novos recursos na especificação ACPI 5.0. Para obter mais informações, consulte Guia de design ACPI do Windows para plataformas SoC.

Depuração ACPI

Os integradores de sistemas e os desenvolvedores de drivers de dispositivo ACPI podem usar o depurador Microsoft AMLI para depurar o código AML. Como a AML é uma linguagem interpretada, a depuração de AML requer ferramentas de software especiais.

Para obter mais informações sobre o depurador AMLI, consulte Depuração ACPI.

Compilador de linguagem de origem (ASL) da Microsoft ACPI

Para obter informações sobre como compilar a linguagem de origem ACPI (ASL) em linguagem de máquina ACPI (AML), consulte Microsoft ASL compiler.

Versão 5.0 do compilador Microsoft ASL oferece suporte a recursos na especificação ACPI 5.0.

O compilador ASL é distribuído com o Windows Driver Kit (WDK).

O compilador ASL (asl.exe) está localizado na Tools\<build>\<architecture>\ACPIVerify pasta do WDK instalado, por exemplo, C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22631.0\x64.