Condividi tramite


Valutazione dei metodi di controllo ACPI

Un metodo di controllo ACPI (Advanced Configuration and Power Interface) è un software che dichiara e definisce le operazioni per eseguire query e configurare l'hardware di sistema. Un sistema compatibile con ACPI fornisce un set minimo di metodi di controllo. I metodi di controllo vengono scritti nell'ASL (ACPI Source Language), compilati da un compilatore ASL in ACPI Machine Language (AML), caricati dal firmware di sistema nello spazio dei nomi ACPI e interpretati dal driver ACPI.

I driver di dispositivo in modalità kernel conformi ai requisiti di Kernel-Mode Driver Framework (KMDF) o Windows Driver Model (WDM) possono valutare i metodi di controllo ACPI usando le richieste di controllo del dispositivo. A partire da Windows 8, i driver in modalità utente conformi ai requisiti di User-Mode Driver Framework (UMDF) possono usare le richieste di controllo del dispositivo per valutare i metodi di controllo ACPI. In genere, un driver valuta i metodi di controllo ACPI per avviare o configurare funzioni specifiche della piattaforma. Un driver può valutare i metodi di controllo ACPI all'interno dello spazio dei nomi dell'oggetto dispositivo fisico (PDO) per il quale viene caricato. Per i driver caricati nello stack di dispositivi di un dispositivo con enumerazione ACPI, il driver ACPI è sempre il driver del bus che ha creato e opera il PDO nello stack di dispositivi. Questa funzionalità include la valutazione dei metodi di controllo supportati dagli oggetti figlio discendenti di un dispositivo padre.

Un driver valuta i metodi di controllo inviando una delle richieste di IRP_MJ_DEVICE_CONTROL seguenti a un dispositivo.

  • IOCTL_ACPI_EVAL_METHOD

    Questa richiesta valuta in modo sincrono un metodo di controllo supportato dal dispositivo a cui viene inviata la richiesta. Per usare questo IOCTL, un driver per il dispositivo fornisce buffer di argomenti del metodo di input e output, il nome di un metodo e un oggetto evento che attende il completamento della richiesta. Il metodo deve essere un oggetto figlio immediato nello spazio dei nomi ACPI del dispositivo a cui viene inviata la richiesta.

  • IOCTL_ACPI_ASYNC_EVAL_METHOD

    Questa richiesta valuta in modo asincrono un metodo di controllo supportato dal dispositivo a cui viene inviata la richiesta. Per usare questo IOCTL, un driver per il dispositivo fornisce buffer di argomenti del metodo di input e output, il nome di un metodo e una routine IoCompletion che il gestore di I/O chiama dopo che tutti i driver di livello inferiore hanno completato la richiesta. Il metodo deve essere un oggetto figlio immediato nello spazio dei nomi ACPI del dispositivo a cui viene inviata la richiesta.

  • IOCTL_ACPI_EVAL_METHOD_EX

    Questa richiesta valuta in modo sincrono un metodo di controllo supportato dal dispositivo o da un oggetto figlio discendente del dispositivo a cui viene inviata la richiesta. Per utilizzare questo IOCTL, un driver per il dispositivo fornisce buffer di argomenti del metodo di input e output, il percorso e il nome del metodo di controllo nello spazio dei nomi ACPI del dispositivo e un oggetto evento che attende il completamento della richiesta.

  • IOCTL_ACPI_ASYNC_EVAL_METHOD_EX

    Questa richiesta valuta in modo asincrono un metodo di controllo supportato dal dispositivo o da un oggetto figlio discendente del dispositivo a cui viene inviata la richiesta. Per utilizzare questo IOCTL, un driver per il dispositivo fornisce buffer di argomenti del metodo di input e output, il percorso e il nome del metodo di controllo nello spazio dei nomi ACPI del dispositivo e una routine IoCompletion che il gestore di I/O chiama dopo che tutti i driver di livello inferiore hanno completato la richiesta.

Per altre informazioni su come valutare in modo sincrono i metodi di controllo ACPI, vedere Valutazione sincrona dei metodi di controllo ACPI. Per altre informazioni su come valutare i metodi di controllo ACPI in modo asincrono, vedere IOCTL_ACPI_ASYNC_EVAL_METHOD e IOCTL_ACPI_ASYNC_EVAL_METHOD_EX.

Affinché un driver di un dispositivo valuti un metodo di controllo che non sia un oggetto figlio immediato del dispositivo, il driver deve specificare il percorso e il nome del metodo nello spazio dei nomi ACPI del dispositivo. Per ottenere il percorso e il nome degli oggetti figlio di un dispositivo, Windows supporta la richiesta di IOCTL_ACPI_ENUM_CHILDREN , che un driver per un dispositivo può usare per enumerare quanto segue:

  • Dispositivo e dispositivi figlio immediati.

  • Il dispositivo e tutti i relativi dispositivi figlio discendenti.

  • Oggetti figlio discendenti di un nome specificato nello spazio dei nomi ACPI del dispositivo, inclusi, in particolare, i metodi di controllo.

Per informazioni su come enumerare dispositivi e metodi nello spazio dei nomi di un dispositivo, vedere Enumerazione di dispositivi figlio e metodi di controllo.

Per informazioni sulle macro fornite dal sistema che un driver può usare per valutare i metodi di controllo, vedere Macro del metodo di controllo.

Per altre informazioni sui dispositivi ACPI, sui metodi di controllo e sugli spazi dei nomi, vedere Advanced Configuration and Power Interface Specification.For more information about ACPI devices, control methods, and namespaces, see the Advanced Configuration and Power Interface Specification.