Évaluation des méthodes de contrôle ACPI

Une méthode de contrôle ACPI (Advanced Configuration and Power Interface) est un logiciel qui déclare et définit des opérations pour interroger et configurer le matériel système. Un système compatible ACPI fournit un ensemble minimal de méthodes de contrôle. Les méthodes de contrôle sont écrites en LANGAGE SOURCE ACPI (ASL), compilées par un compilateur ASL dans ACPI Machine Language (AML), chargées à partir du microprogramme système dans l’espace de noms ACPI et interprétées par le pilote ACPI.

Les pilotes de périphérique en mode noyau qui répondent aux exigences de KMDF (Kernel-Mode Driver Framework) ou du modèle de pilote Windows (WDM) peuvent évaluer les méthodes de contrôle ACPI à l’aide de demandes de contrôle de périphérique. À compter de Windows 8, les pilotes en mode utilisateur qui répondent aux exigences de l’infrastructure de pilotes en mode utilisateur (UMDF) peuvent utiliser des demandes de contrôle de périphérique pour évaluer les méthodes de contrôle ACPI. En règle générale, un pilote évalue les méthodes de contrôle ACPI pour démarrer ou configurer des fonctions spécifiques à la plateforme. Un pilote peut évaluer les méthodes de contrôle ACPI dans l’espace de noms de l’objet de périphérique physique (PDO) pour lequel il est chargé. Pour les pilotes chargés dans la pile de périphériques d’un appareil énuméré ACPI, le pilote ACPI est toujours le pilote de bus qui a créé et exploite l’AOP dans la pile de périphériques. Cette fonctionnalité inclut l’évaluation des méthodes de contrôle prises en charge par les objets enfants descendants d’un appareil parent.

Un pilote évalue les méthodes de contrôle en envoyant l’une des requêtes IRP_MJ_DEVICE_CONTROL suivantes à un appareil.

  • IOCTL_ACPI_EVAL_METHOD

    Cette requête évalue de façon synchrone une méthode de contrôle prise en charge par l’appareil auquel la demande est envoyée. Pour utiliser cet IOCTL, un pilote pour le périphérique fournit des mémoires tampons d’arguments d’entrée et de sortie, le nom d’une méthode et un objet d’événement qui attend la fin de la demande. La méthode doit être un objet enfant immédiat dans l’espace de noms ACPI de l’appareil auquel la demande est envoyée.

  • IOCTL_ACPI_ASYNC_EVAL_METHOD

    Cette requête évalue de façon asynchrone une méthode de contrôle prise en charge par l’appareil auquel la demande est envoyée. Pour utiliser cet IOCTL, un pilote pour l’appareil fournit des mémoires tampons d’arguments d’entrée et de sortie, le nom d’une méthode et une routine IoCompletion que le gestionnaire d’E/S appelle une fois que tous les pilotes de niveau inférieur ont terminé la demande. La méthode doit être un objet enfant immédiat dans l’espace de noms ACPI de l’appareil auquel la demande est envoyée.

  • IOCTL_ACPI_EVAL_METHOD_EX

    Cette requête évalue de façon synchrone une méthode de contrôle prise en charge par l’appareil ou un objet enfant descendant de l’appareil auquel la demande est envoyée. Pour utiliser cet IOCTL, un pilote pour l’appareil fournit des mémoires tampons d’arguments d’entrée et de sortie, le chemin d’accès et le nom de la méthode de contrôle dans l’espace de noms ACPI de l’appareil, ainsi qu’un objet d’événement qui attend la fin de la demande.

  • IOCTL_ACPI_ASYNC_EVAL_METHOD_EX

    Cette requête évalue de façon asynchrone une méthode de contrôle prise en charge par l’appareil ou un objet enfant descendant de l’appareil auquel la demande est envoyée. Pour utiliser cet IOCTL, un pilote pour l’appareil fournit des mémoires tampons d’arguments d’entrée et de sortie, le chemin et le nom de la méthode de contrôle dans l’espace de noms ACPI de l’appareil, et une routine IoCompletion que le gestionnaire d’E/S appelle une fois que tous les pilotes de niveau inférieur ont terminé la demande.

Pour plus d’informations sur l’évaluation synchrone des méthodes de contrôle ACPI, consultez Évaluation synchrone des méthodes de contrôle ACPI. Pour plus d’informations sur l’évaluation asynchrone des méthodes de contrôle ACPI, consultez IOCTL_ACPI_ASYNC_EVAL_METHOD et IOCTL_ACPI_ASYNC_EVAL_METHOD_EX.

Pour qu’un pilote d’un appareil évalue une méthode de contrôle qui n’est pas un objet enfant immédiat de l’appareil, le pilote doit fournir le chemin et le nom de la méthode dans l’espace de noms ACPI de l’appareil. Pour vous aider à obtenir le chemin et le nom des objets enfants d’un appareil, Windows prend en charge la demande IOCTL_ACPI_ENUM_CHILDREN , qu’un pilote pour un appareil peut utiliser pour énumérer les éléments suivants :

  • L’appareil et ses appareils enfants immédiats.

  • L’appareil et tous ses appareils enfants descendants.

  • Objets enfants descendants d’un nom fourni dans l’espace de noms ACPI de l’appareil, notamment les méthodes de contrôle.

Pour plus d’informations sur l’énumération des appareils et des méthodes dans l’espace de noms d’un appareil, consultez Énumération d’appareils enfants et méthodes de contrôle.

Pour plus d’informations sur les macros fournies par le système qu’un pilote peut utiliser pour évaluer les méthodes de contrôle, consultez Macros de méthode de contrôle.

Pour plus d’informations sur les appareils ACPI, les méthodes de contrôle et les espaces de noms, consultez configuration avancée et spécification de l’interface d’alimentation.