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.
-
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.
-
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.
-
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.