Acpi.sys (драйвер Windows ACPI)
Драйвер Windows ACPI, Acpi.sys, является компонентом папки "Входящие" операционной системы Windows. Обязанности Acpi.sys включают поддержку управления питанием и перечисления устройств самонастраивающийся (PnP). На аппаратных платформах, имеющих ACPI BIOS, HAL вызывает загрузку 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 зависит от одной аппаратной платформы до следующей, и зависит от ACPI BIOS и конфигурации материнской платы. Acpi.sys загружает фильтр шины ACPI только для устройства, описанного в пространстве имен ACPI, и постоянно подключен к аппаратной платформе (обычно это устройство интегрировано в ядро силиконовой или проданной системной доске). Не все устройства материнской платы имеют фильтр шины ACPI.
Все функциональные возможности ACPI прозрачны для драйверов более высокого уровня. Эти драйверы не должны делать предположений о присутствии или отсутствии фильтра ACPI в любом стеке устройств.
Acpi.sys и ACPI BIOS поддерживают основные функции устройства ACPI. Чтобы улучшить функциональные возможности устройства ACPI, поставщик устройств может предоставить драйвер функции WDM. Дополнительные сведения см. в разделе "Операция драйвера функции устройства ACPI".
Устройство ACPI определяется блоком определения в таблицах системного описания в BIOS ACPI. Блок определения устройства указывает, помимо прочего, регион операции, который является непрерывным блоком памяти устройства, который используется для доступа к данным устройства. Только Acpi.sys изменяет данные в регионе операции. Драйвер функции устройства может считывать данные в регионе операции, но не должен изменять данные. При вызове обработчик области операций передает байты в регион операции и из буфера данных в Acpi.sys. Объединенная операция драйвера функции и Acpi.sys зависит от устройства и определяется в BIOS ACPI поставщиком оборудования. Как правило, драйвер функции и 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 6.4) доступна на веб-сайте форума по интерфейсу интерфейса единого расширяемого встроенного ПО.
Версия 5.0 спецификации ACPI представляет набор функций для поддержки низкой мощности, мобильных пк, основанных на интегрированных каналах System on Chip (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\<build>\<architecture>\ACPIVerify
папке установленного WDK, например C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22631.0\x64
.