ID contenitore generati da un override della funzionalità dispositivo rimovibile
A partire da Windows 7, i nuovi dispositivi devono fornire un ID univoco specifico del bus (come descritto in ID contenitore generati da un ID univoco Bus-Specific).
In alternativa, i dispositivi e i driver del bus devono impostare correttamente la funzionalità di dispositivo rimovibile (come descritto in ID contenitore generati dalla funzionalità dispositivo rimovibile). Per altre informazioni sulla funzionalità di dispositivo rimovibile, vedere Panoramica della funzionalità dispositivo rimovibile.
Windows 7 e versioni successive di Windows supportano anche un meccanismo per eseguire l'override della funzionalità di dispositivo rimovibile segnalata. Questo meccanismo è utile per i dispositivi legacy che segnalano erroneamente la funzionalità del dispositivo rimovibile.
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.
Tramite questo meccanismo di override, è possibile generare un ID contenitore tramite un metodo basato sul Registro di sistema. Non appena viene generato l'ID contenitore per il nodo del dispositivo superiore (padre) (devnode) di un dispositivo, lo stesso ID contenitore viene ereditato da ogni nodo devnode figlio del dispositivo tramite l'euristica descritta in ID contenitore generati dalla funzionalità dispositivo rimovibile.
Il meccanismo di override è una tabella di ricerca basata sul Registro di sistema costituita da chiavi del Registro di sistema mappate a dispositivi specifici. Questa tabella di override viene mantenuta nella chiave del Registro di sistema DeviceOverrides ed è costituita dalle chiavi e dalle sottochiavi del Registro di sistema seguenti.
Livello tabella | Nome chiave/sottochiave del Registro di sistema | Descrizione |
---|---|---|
1 |
Chiave padre per tutte le sostituzioni delle funzionalità rimovibili del dispositivo. |
|
2 |
Specifica l'ID hardware di un dispositivo a cui si applica l'override della funzionalità di dispositivo rimovibile. Il nome di questa sottochiave è l'ID hardware effettivo, con tutti i caratteri barra rovesciata ('') sostituiti da numeri ('#'). |
|
2 |
Specifica l'ID compatibile di un dispositivo a cui si applica l'override della funzionalità di dispositivo rimovibile. Il nome di questa sottochiave è l'ID hardware effettivo, con tutti i caratteri barra rovesciata ('') sostituiti da numeri ('#'). |
|
3 |
Specifica che solo il percorso del nodo del dispositivo padre del dispositivo (devnode) avrà l'override della funzionalità di dispositivo rimovibile applicata. |
|
3 |
Specifica che il percorso dei devnodes figlio del dispositivo avrà applicato l'override della funzionalità rimovibile del dispositivo.
Nota Il nodo devnode padre del dispositivo specificato non è interessato dall'override della funzionalità di dispositivo rimovibile, a meno che non venga specificata anche una sottochiave del Registro di sistema LocationPaths o sia specificata una sottochiave del Registro di sistema ChildLocationPaths per il nodo devnode padre.
|
|
4 |
Specifica il percorso discreto del nodo devnode a cui si applica l'override della funzionalità di dispositivo rimovibile. Il nome di questa sottochiave è il percorso effettivo per una singola istanza devnode di un dispositivo installato nel computer. |
|
4 |
Specifica che l'override della funzionalità di dispositivo rimovibile si applica a tutti i nodi di sviluppo per il dispositivo specificato. |
All'interno delle sottochiavi LocationPath e * del Registro di sistema, un valore DWORD (Rimovibile) specifica se i nomi di sviluppo applicabili sono considerati rimovibili (1) o non rimovibili (0).
Esempio 1
Di seguito viene illustrato un override del dispositivo per un nodo devnode che corrisponde a una sottochiave del Registro di sistema HardwareID oltre a un percorso specificato tramite la sottochiave del Registro di sistema LocationPaths .
In questo esempio, l'override disabiliterà la funzionalità del dispositivo rimovibile e viene applicata a tutti i nodi di sviluppo con ID hardware USB\VID_1234&PID_5678 nel percorso percorso PCIROOT(0)#PCI(102)#USBROOT(0)#USB(1).
Di seguito è riportato un esempio del formato di tabella del Registro di sistema per questa sostituzione.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceOverrides
USB#VID_1234&PID_5678
LocationPaths
PCIROOT(0)#PCI(102)#USBROOT(0)#USB(1)
Removable=0
In questo esempio è USB#VID_1234&PID_5678
il nome della sottochiave del Registro di sistema HardwareID e PCIROOT(0)#PCI(102)#USBROOT(0)#USB(1)
è il nome della sottochiave del Registro di sistema LocationPath .
Questo override modifica l'interpretazione del gestore di Plug and Play (PnP) della topologia del dispositivo. Si noti che devnode con un valore ID hardware USB\VID_1234&PID_5678 è stato contrassegnato come non rimovibile nel Registro di sistema. Un nuovo ID contenitore non viene generato per questo devnode, perché il gestore PnP interpreta devnode come non rimovibile dal relativo elemento padre. USB\VID_1234&PID_5678 (e tutti i relativi elementi figlio) ereditano invece l'ID contenitore (ContainerID {A}) del padre.
Il risultato di questa override è un singolo raggruppamento di dispositivi perché tutti gli elementi devnodes nell'albero hanno lo stesso ID contenitore. Il dispositivo USB\VID_1234&PID_5678 viene interpretato come integrato con il computer.
Il diagramma seguente mostra la topologia del dispositivo risultante e l'assegnazione di ID contenitore associata.
L'esempio precedente mostra una topologia devnode rilevata di frequente: computer portatili con dispositivi hardwired in posizioni di bus specifiche che segnalano erroneamente se stessi come rimovibili. I dispositivi fisicamente integrati con un computer, ad esempio una webcam o un sensore biometrico (impronta digitale), non devono essere segnalati come rimovibili perché un utente non può separarli fisicamente dal computer. L'override rimovibile consente a un fornitore di hardware indipendente (IHV) o all'OEM (Original Equipment Manufacturer) di modificare il modo in cui il gestore PnP interpreta la funzionalità del dispositivo rimovibile e quindi influisce sull'assegnazione dell'ID contenitore per il dispositivo.
Esempio 2
Di seguito viene illustrato un override della funzionalità di dispositivo rimovibile per tutti i nodi di sviluppo che corrispondono a un valore ID hardware specifico.
In questo esempio, l'override abiliterà la funzionalità del dispositivo rimovibile e l'override viene applicato agli sviluppatori che hanno un valore ID hardware USB\VID_062A&PID_0000.
Di seguito è riportata una descrizione generale del formato di tabella del Registro di sistema per questa sostituzione.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceOverrides
USB#VID_062A&PID_00001
LocationPaths
*
Removable=1
1 Nome della sottochiave del Registro di sistema HardwareID .
In questo esempio, devnode con UN ID hardware USB\VID_1234&PID_5678 segnala correttamente la funzionalità rimovibile del dispositivo. Il gestore PnP genera un ID contenitore (ContainerID {B}) per esso e tutti i relativi devnodes figlio.
Tuttavia, il nodo devnode figlio con un ID hardware USB\VID_062A&PID_0000 corrisponde all'override. Di conseguenza, il gestore PnP genera un altro ID indipendente (ContainerID {C}) per questo devnode e tutti i relativi devnodes figlio.
Come in precedenza, questa sostituzione modifica l'interpretazione della topologia del dispositivo da parte del gestore PnP. Al dispositivo fisico vengono assegnati due ID contenitore e viene visualizzato da Windows come due dispositivi. Si noti che devnode con l'ID hardware usb\VID_062A&PID_0000 viene interpretato come rimovibile nel raggruppamento dei nodi di sviluppo nei dispositivi. Questo non modifica il valore segnalato dal nodo devnode per la funzionalità rimovibile del dispositivo.
Inoltre, la sottochiave del Registro di sistema * è stata specificata per indicare che questo override deve essere applicato a tutti gli elementi devnodes nel computer con l'ID hardware USB\VID_062A&PID_0000.
Il diagramma seguente mostra la topologia del dispositivo risultante e l'assegnazione di ID contenitore associata.