Acpi.sys (драйвер Windows ACPI)

Драйвер Windows ACPI, Acpi.sys, является компонентом папки "Входящие" операционной системы Windows. Обязанности Acpi.sys включают поддержку управления питанием и перечисления устройств Plug and Play (PnP). На аппаратных платформах с BIOS ACPIHAL вызывает загрузку Acpi.sys во время запуска системы в основе дерева устройств. Acpi.sys выступает в качестве интерфейса между операционной системой и BIOS ACPI. Acpi.sys прозрачно для других драйверов в дереве устройств.

Другие задачи, выполняемые Acpi.sys на определенной аппаратной платформе, могут включать перепрограммирование ресурсов для COM-порта или включение КОНТРОЛЛЕРа USB для пробуждения системы.

В этом разделе

Устройства ACPI

Поставщик аппаратной платформы указывает иерархию пространств имен ACPI в BIOS ACPI для описания аппаратной топологии платформы. Дополнительные сведения см. в разделе Иерархия пространства имен ACPI.

Для каждого устройства, описанного в иерархии пространства имен ACPI, драйвер Windows ACPI, Acpi.sys, создает объект устройства фильтра (фильтр DO) или объект физического устройства (PDO). Если устройство интегрировано в системную плату, Acpi.sys создает объект устройства фильтра, представляющий фильтр шины ACPI, и присоединяет его к стеку устройств непосредственно над драйвером шины (PDO). Для других устройств, описанных в пространстве имен ACPI, но не на системной плате, Acpi.sys создает PDO. Acpi.sys обеспечивает управление питанием и функции PnP для стека устройств с этими объектами устройств. Дополнительные сведения см. в разделе Стеки устройств для устройства ACPI.

Устройство, для которого Acpi.sys создает объект устройства, называется устройством ACPI. Набор устройств ACPI зависит от bios ACPI и конфигурации системной платы. Acpi.sys загружает фильтр шины ACPI только для устройства, описанного в пространстве имен ACPI и постоянно подключенного к аппаратной платформе (как правило, это устройство интегрировано в основной кремний или припаяно к системной плате). Не все устройства системной платы имеют фильтр шины ACPI.

Все функции ACPI прозрачны для драйверов более высокого уровня. Эти драйверы не должны делать предположений о наличии или отсутствии фильтра ACPI в любом заданном стеке устройств.

Acpi.sys и ACPI BIOS поддерживают основные функции устройства ACPI. Чтобы улучшить функциональность устройства ACPI, поставщик устройства может предоставить драйвер функции WDM. Дополнительные сведения см. в разделе Эксплуатация драйвера функции устройства ACPI.

Устройство ACPI задается блоком определения в таблицах описания системы в BIOS ACPI. Блок определения устройства, среди прочего, указывает область операций, которая представляет собой непрерывный блок памяти устройства, используемый для доступа к данным устройства. Только Acpi.sys изменяет данные в области операции. Драйвер функции устройства может считывать данные в области операции, но не должен изменять данные. При вызове обработчик области операции передает байты в области операции в буфер данных в Acpi.sys и из нее. Объединенная работа драйвера функции и Acpi.sys зависит от устройства и определяется в ACPI BIOS поставщиком оборудования. Как правило, драйвер функции и Acpi.sys обращаться к определенным областям в области операций для выполнения операций, относящихся к устройству, и получения информации. Дополнительные сведения см. в разделе Поддержка региона операции.

Методы управления ACPI

Методы управления ACPI — это программные объекты, которые объявляют и определяют простые операции для запроса и настройки устройств ACPI. Методы управления хранятся в BIOS ACPI и кодируются в формате байтового кода, который называется машинным языком ACPI (AML). Методы управления для устройства загружаются из встроенного ПО системы в пространство имен ACPI устройства в памяти и интерпретируются драйвером Windows ACPI, Acpi.sys.

Чтобы вызвать метод управления, драйвер в режиме ядра для устройства ACPI инициирует запрос IRP_MJ_DEVICE_CONTROL , который обрабатывается Acpi.sys. Для драйверов, загруженных на устройства с перечислением ACPI, Acpi.sys всегда реализует объект физического устройства (PDO) в стеке драйверов. Дополнительные сведения см. в разделе Оценка методов управления ACPI.

Спецификация ACPI

Расширенная спецификация интерфейса конфигурации и питания (спецификация ACPI 5.0) доступна на веб-сайте Форума унифицированных расширяемых интерфейсов встроенного ПО.

В редакции 5.0 спецификации ACPI представлен набор функций для поддержки маломощных мобильных компьютеров, основанных на интегральных схемах Системы на микросхемах (SoC) и реализующих модель резервного питания с подключением . Начиная с Windows 8 и более поздних версий, драйвер Windows ACPI, Acpi.sys, поддерживает новые функции в спецификации ACPI 5.0. Дополнительные сведения см. в руководстве по проектированию Windows ACPI для платформ SoC.

Отладка ACPI

Системные интеграторы и разработчики драйверов устройств ACPI могут использовать отладчик Microsoft AMLI для отладки кода AML. Так как AML является интерпретируемым языком, для отладки AML требуются специальные программные средства.

Дополнительные сведения об отладчике AMLI см. в разделе Отладка ACPI.

Компилятор исходного языка Microsoft ACPI (ASL)

Сведения о компиляции исходного языка ACPI (ASL) в машинный язык ACPI (AML) см. в разделе Компилятор Microsoft ASL.

Версия 5.0 компилятора Microsoft ASL поддерживает функции в спецификации ACPI 5.0.

Компилятор ASL распространяется вместе с пакетом драйверов Windows (WDK).

Компилятор ASL (asl.exe) находится в каталогах Tools\arm\ACPIVerify, Tools\arm64\ACPIVerify, Tools\x86\ACPIVerify и Tools\x64\ACPIVerify установленного WDK, например C:\Program Files (x86)\Windows Kits\10\Tools\x86\ACPIVerify.