Acpi.sys (pilote Windows ACPI)

Le pilote WINDOWS ACPI, Acpi.sys, est un composant de boîte de réception du système d’exploitation Windows. Les responsabilités de Acpi.sys incluent la prise en charge de la gestion de l’alimentation et de l’énumération des appareils Plug-and-Play (PnP). Sur les plateformes matérielles qui ont un BIOS ACPI, la hal entraîne le chargement des Acpi.sys au démarrage du système à la base de l’arborescence de l’appareil. Acpi.sys sert d’interface entre le système d’exploitation et le BIOS ACPI. Acpi.sys est transparent pour les autres pilotes dans l’arborescence des appareils.

D’autres tâches effectuées par Acpi.sys sur une plateforme matérielle particulière peuvent inclure la reprogrammation des ressources pour un port COM ou l’activation du contrôleur USB pour la mise en éveil du système.

Dans cette rubrique

Appareils ACPI

Le fournisseur de la plateforme matérielle spécifie une hiérarchie d’espaces de noms ACPI dans le BIOS ACPI pour décrire la topologie matérielle de la plateforme. Pour plus d’informations, consultez Hiérarchie de l’espace de noms ACPI.

Pour chaque appareil décrit dans la hiérarchie de l’espace de noms ACPI, le pilote ACPI Windows, Acpi.sys, crée un objet de périphérique de filtre (do de filtre) ou un objet d’appareil physique (PDO). Si l’appareil est intégré à la carte système, Acpi.sys crée un objet de périphérique de filtre, représentant un filtre de bus ACPI, et l’attache à la pile d’appareils immédiatement au-dessus du pilote de bus (PDO). Pour les autres appareils décrits dans l’espace de noms ACPI, mais pas sur la carte système, Acpi.sys crée l’AOP. Acpi.sys fournit des fonctionnalités de gestion de l’alimentation et PnP à la pile d’appareils avec ces objets d’appareil. Pour plus d’informations, consultez Piles d’appareils pour un appareil ACPI.

Un appareil pour lequel Acpi.sys crée un objet d’appareil est appelé appareil ACPI. L’ensemble des appareils ACPI varie d’une plateforme matérielle à l’autre et dépend du BIOS ACPI et de la configuration de la carte mère. Acpi.sys charge un filtre de bus ACPI uniquement pour un appareil qui est décrit dans l’espace de noms ACPI et qui est connecté en permanence à la plateforme matérielle (en général, cet appareil est intégré au silicium central ou soudé à la carte système). Tous les périphériques de carte mère n’ont pas de filtre de bus ACPI.

Toutes les fonctionnalités ACPI sont transparentes pour les pilotes de niveau supérieur. Ces pilotes ne doivent pas faire d’hypothèses concernant la présence ou l’absence d’un filtre ACPI dans une pile d’appareils donnée.

Acpi.sys et le BIOS ACPI prennent en charge les fonctions de base d’un appareil ACPI. Pour améliorer les fonctionnalités d’un appareil ACPI, le fournisseur de l’appareil peut fournir un pilote de fonction WDM. Pour plus d’informations, consultez Fonctionnement d’un pilote de fonction de périphérique ACPI.

Un appareil ACPI est spécifié par un bloc de définition dans les tables de description système du BIOS ACPI. Le bloc de définition d’un appareil spécifie, entre autres, une région d’opération, qui est un bloc contigu de mémoire d’appareil utilisé pour accéder aux données de l’appareil. Seule Acpi.sys modifie les données dans une région d’opération. Le pilote de fonction de l’appareil peut lire les données dans une région d’opération, mais ne doit pas modifier les données. Lorsqu’il est appelé, un gestionnaire de région d’opération transfère des octets dans la région d’opération vers et depuis la mémoire tampon de données dans Acpi.sys. L’opération combinée du pilote de fonction et de Acpi.sys est spécifique à l’appareil et est définie dans le BIOS ACPI par le fournisseur de matériel. En général, le pilote de fonction et les Acpi.sys accéder à des zones particulières d’une région d’opération pour effectuer des opérations spécifiques à l’appareil et récupérer des informations. Pour plus d’informations, consultez Prise en charge d’une région d’opération.

Méthodes de contrôle ACPI

Les méthodes de contrôle ACPI sont des objets logiciels qui déclarent et définissent des opérations simples pour interroger et configurer des appareils ACPI. Les méthodes de contrôle sont stockées dans le BIOS ACPI et sont encodées dans un format de code d’octet appelé langage machine ACPI (AML). Les méthodes de contrôle d’un appareil sont chargées à partir du microprogramme système dans l’espace de noms ACPI de l’appareil en mémoire et interprétées par le pilote ACPI Windows, Acpi.sys.

Pour appeler une méthode de contrôle, le pilote en mode noyau d’un appareil ACPI lance une requête IRP_MJ_DEVICE_CONTROL , qui est gérée par Acpi.sys. Pour les pilotes chargés sur les appareils acpi, Acpi.sys implémente toujours l’objet de périphérique physique (PDO) dans la pile des pilotes. Pour plus d’informations, consultez Évaluation des méthodes de contrôle ACPI.

Spécification ACPI

La spécification Advanced Configuration and Power Interface (spécification ACPI 5.0) est disponible sur le site web Unified Extensible Firmware Interface Forum.

La révision 5.0 de la spécification ACPI introduit un ensemble de fonctionnalités pour prendre en charge les PC mobiles de faible consommation qui sont basés sur des circuits intégrés Système sur puce (SoC) et qui implémentent le modèle d’alimentation de secours connecté . À compter de Windows 8 et versions ultérieures, le pilote WINDOWS ACPI, Acpi.sys, prend en charge les nouvelles fonctionnalités de la spécification ACPI 5.0. Pour plus d’informations, consultez Guide de conception de Windows ACPI pour les plateformes SoC.

Débogage ACPI

Les intégrateurs système et les développeurs de pilotes d’appareil ACPI peuvent utiliser le débogueur Microsoft AMLI pour déboguer du code AML. Étant donné qu’AML est un langage interprété, le débogage AML nécessite des outils logiciels spéciaux.

Pour plus d’informations sur le débogueur AMLI, consultez Débogage ACPI.

Compilateur ASL (Microsoft ACPI Source Language)

Pour plus d’informations sur la compilation du langage source ACPI (ASL) en langage machine ACPI (AML), consultez Compilateur Microsoft ASL.

La version 5.0 du compilateur Microsoft ASL prend en charge les fonctionnalités de la spécification ACPI 5.0.

Le compilateur ASL est distribué avec le Kit de pilotes Windows (WDK).

Le compilateur ASL (asl.exe) se trouve dans les répertoires Tools\arm\ACPIVerify, Tools\arm64\ACPIVerify, Tools\x86\ACPIVerify et Tools\x64\ACPIVerify du WDK installé, par exemple, C :\Program Files (x86)\Windows Kits\10\Tools\x86\ACPIVerify.