Come vengono generati gli ID contenitore

A partire da Windows 7, il gestore Plug and Play (PnP) genera un ID contenitore per un nodo del dispositivo (devnode) tramite uno dei tre meccanismi seguenti:

  • Un driver del bus fornisce un ID del contenitore.

    Quando si assegna un ID contenitore a un devnode, il gestore PnP controlla innanzitutto se il driver del bus del nodo devnode può fornire un ID contenitore. I driver del bus forniscono un ID contenitore tramite una richiesta di IRP_MN_QUERY_ID con il campo Parameters.QueryId.IdType impostato su BusQueryContainerID.

    Se un driver del bus vuole fornire un ID container, può ottenere un ID container autentico incorporato nell'hardware del dispositivo fisico oppure usare un ID univoco specifico del bus dall'hardware del dispositivo per generare un ID container. Alcuni esempi di ID univoci specifici del bus sono il numero di serie di un dispositivo o un indirizzo MAC (Media Access Control) nel firmware del dispositivo.

    Nota

    Il fornitore di hardware indipendente (IHV) è responsabile dell'univocità dell'ID contenitore segnalato dal driver del bus.

    Per altre informazioni, vedere ID contenitore generati da un ID univoco specifico del bus.

  • Il gestore PnP genera un ID contenitore tramite la funzionalità del dispositivo rimovibile.

    Se un driver di bus non può fornire un ID del contenitore per un devnode che sta enumerando, il gestore PnP usa la funzionalità di dispositivo rimovibile per generare un ID del contenitore per tutti i devnodes enumerati per il dispositivo. Il driver del bus segnala questa funzionalità del dispositivo in risposta a una richiesta IRP_MN_QUERY_CAPABILITIES.

    Per altre informazioni, vedere ID contenitore generati dalla capacità del dispositivo rimovibile.

  • Il gestore PnP genera un ID contenitore tramite un override della funzionalità di dispositivo rimovibile.

    Nota

    In Windows 10, i dispositivi DPWS genereranno sempre un ID contenitore per il dispositivo usando questo metodo.

    Anche se il meccanismo di override non modifica il valore della funzionalità di dispositivo rimovibile, forza il gestore PnP a usare l'impostazione di override e non il valore della funzionalità di dispositivo rimovibile durante la generazione di ID contenitore per i dispositivi.

    Ad esempio, se un override della funzionalità di dispositivo rimovibile specifica che il dispositivo è rimovibile, il gestore PnP genera un ID contenitore per tutti gli elementi devnodes enumerati per il dispositivo. Questa azione viene eseguita indipendentemente dal fatto che il dispositivo sia stato segnalato come rimovibile o meno.

    Un IHV può popolare il Registro di sistema con chiavi che sovrascrivono la funzionalità del dispositivo rimovibile segnalata dal dispositivo. Questo meccanismo di override è utile per i dispositivi legacy che non supportano la funzionalità di dispositivo rimovibile o la riportano in modo errato.

    Per altre informazioni, vedere ID dei contenitori generati da un override della funzionalità del dispositivo rimovibile.

Oltre a questi metodi, il sistema usa le impostazioni degli oggetti BIOS ACPI per specificare i raggruppamenti dei contenitori di dispositivi. Per altre informazioni, vedere Uso di ACPI per il raggruppamento di Device Container.