Albero dei dispositivi
Il gestore PnP gestisce un albero dei dispositivi che tiene traccia dei dispositivi nel sistema. La figura seguente illustra l'albero dei dispositivi per una configurazione di sistema di esempio.
L'albero dei dispositivi contiene informazioni sui dispositivi presenti nel sistema. Il gestore PnP compila questo albero quando il computer viene avviato, usando le informazioni dei driver e di altri componenti e aggiorna l'albero man mano che i dispositivi vengono aggiunti o rimossi.
Ogni nodo dell'albero dei dispositivi è denominato nodo del dispositivo o devnode. Un devnode è costituito dagli oggetti dispositivo per i driver del dispositivo, oltre alle informazioni interne gestite dal sistema. Di conseguenza, è presente un nodo devnode per ogni stack di dispositivi.
Il gestore PnP chiede a un driver del bus un elenco dei dispositivi figlio usando una richiesta di IRP_MN_QUERY_DEVICE_RELATIONS . Il conducente del bus determina l'elenco dei bambini in base al protocollo del bus. Ad esempio, il driver ACPI di Windows, Acpi.sys, cerca nello spazio dei nomi ACPI, il driver PCI esegue una query sullo spazio di configurazione PCI e un driver hub USB segue il protocollo del bus USB.
L'albero dei dispositivi è gerarchico, con dispositivi in un bus rappresentato come "figli" della scheda bus, del controller o di un altro dispositivo bus. Un dispositivo bus è qualsiasi dispositivo a cui è possibile collegare altri dispositivi fisici, logici o virtuali. È possibile visualizzare la gerarchia dei dispositivi nell'albero dei dispositivi usando Gestione dispositivi e scegliendo l'opzione di visualizzazione che consente di visualizzare i dispositivi in base alla connessione.
La gerarchia dell'albero dei dispositivi riflette la struttura in cui i dispositivi sono collegati nel computer. Il gestore PnP usa questa gerarchia durante la gestione dei dispositivi. Ad esempio, se un utente richiede di scollegare il controller USB dal computer rappresentato dalla figura precedente, il gestore PnP determina dall'albero dei dispositivi che questa azione comporterà anche l'scollegazione di altri tre dispositivi (l'hub USB, il joystick e la fotocamera). Quando il gestore PnP esegue una query sui driver per il controller USB per determinare se è sicuro rimuovere il controller, esegue anche una query sui driver dei discendenti del controller (hub, joystick e fotocamera).
L'albero del dispositivo è dinamico. Man mano che i dispositivi vengono aggiunti e rimossi dal computer, il gestore PnP (insieme ai driver) mantiene un'immagine corrente dei dispositivi nel sistema.
Esistono altre relazioni tra dispositivi nel computer oltre alle relazioni gerarchica rappresentate nell'albero dei dispositivi. Tali relazioni includono relazioni di rimozione e espulsione. Per altre informazioni, vedere la pagina di riferimento per IRP_MN_QUERY_DEVICE_RELATIONS .
Non è possibile fare ipotesi sull'ordine in cui viene compilato l'albero dei dispositivi, ad eccezione del fatto che un dispositivo bus è configurato prima di uno dei dispositivi figlio. Ad esempio, non è consigliabile presupporre che un dispositivo in un bus sia configurato prima di un altro dispositivo nel bus.