Condividi tramite


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.

albero del dispositivo pnp di esempio.

L'albero dei dispositivi contiene informazioni sui dispositivi presenti nel sistema. Il gestore PnP compila questo albero all'avvio del computer, usando informazioni dai driver e da 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 relativi dispositivi figlio usando una richiesta IRP_MN_QUERY_DEVICE_RELATIONS. Il conducente del bus determina l'elenco dei figli secondo il 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 dell'hub USB segue il protocollo del bus USB.

L'albero dei dispositivi è gerarchico, con dispositivi su un bus rappresentato come "elementi figlio" della scheda bus, del controller o di un altro dispositivo bus. Un dispositivo bus è qualsiasi dispositivo a cui possono essere collegati 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 la 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 (l'hub, il joystick e la 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 i dispositivi nel computer oltre alle relazioni gerarchica rappresentate nell'albero dei dispositivi. Questi includono relazioni di rimozione e relazioni di esiezione. 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 relativi dispositivi figlio. Ad esempio, non è consigliabile presupporre che un dispositivo su un bus sia configurato prima di un altro dispositivo sul bus.