Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un ID hardware è una stringa di identificazione definita dal fornitore usata da Windows per associare un dispositivo a un pacchetto driver . Un ID hardware identifica un dispositivo. Indica che qualsiasi pacchetto driver che lo dichiara può funzionare con un dispositivo con tale ID per un certo grado di funzionalità.
Nella maggior parte dei casi, un dispositivo ha più di un ID hardware. In genere, un elenco di ID hardware viene ordinato dal più adatto al meno adatto per un dispositivo. Ad esempio, l'elenco di ID hardware concettuali per un dispositivo potrebbe essere simile al seguente:
<Product X made by company Y with firmware revision Z>
<Product X made by company Y that is a device of type W>
Dove gli ID hardware effettivi rappresentano questi concetti usando stringhe che seguono i requisiti di formato di un ID hardware.
Creare un ID hardware per un dispositivo
Gli ID hardware vengono segnalati al Plug and Play Manager (PnP) dall'enumeratore di un dispositivo, cioè il driver del bus. In genere, quando l'autore di un driver del bus deve creare un nuovo ID hardware per un dispositivo che segnala a PnP, usa uno dei formati generici seguenti:
<enumerator>\<enumerator-specific-device-ID>
Questo formato è il più comune per i singoli dispositivi PnP segnalati al gestore Plug and Play da un singolo enumeratore.
\*<generic-device-ID>
L'asterisco indica che più enumeratori supportano il dispositivo, ad esempio ISAPNP e BIOS.
<device-class-specific-ID>
Per altre informazioni, vedere Identificatori Generici.
Una classe di dispositivo esistente con la propria convenzione di denominazione stabilita potrebbe usare un formato personalizzato. Per informazioni sui formati di ID hardware, vedere la specifica hardware per tali bus.
Il numero di caratteri di un ID hardware, escluso un terminatore NULL, deve essere minore di MAX_DEVICE_ID_LEN. Questo vincolo si applica alla somma delle lunghezze di tutti i campi e di tutti i separatori di campo \\ in un ID hardware. Per altre informazioni, vedere la sezione Operazione di IRP_MN_QUERY_ID.
ID hardware per dispositivi enumerati alla radice
I dispositivi enumerati dalla radice sono speciali in quanto possono essere creati usando le API in cui è possibile fornire un ID hardware. I dispositivi enumerati radice con ID hardware che condividono spazi dei nomi generici, ad esempio ROOT\SYSTEM, potrebbero entrare in conflitto. Il risultato è un'icona di errore con punto esclamativo giallo in Gestione dispositivi quando si aggiorna Windows.
È possibile evitare questo errore utilizzando uno spazio dei nomi univoco per ciascun driver che ha un dispositivo enumerato come radice. Per un dispositivo USB o di sistema, anziché usare ROOT\USB o ROOT\SYSTEM, usare ROOT\[COMPANYNAME]\[DEVICENAME]. Quindi, prima di eseguire l'installazione, verificare se devnode è già presente.
Ottenere l'elenco degli ID hardware per un dispositivo
Per trovare l'elenco degli ID hardware per un dispositivo, seguire questa procedura:
- In Ricerca di Windows immettere e selezionare Gestione dispositivi.
- In Gestione dispositivi trovare il dispositivo nell'albero.
- Selezionare il dispositivo con il pulsante destro del computer e selezionare Proprietà.
- Selezionare la scheda Dettagli.
- Per la Proprietà, selezionare ID hardware o ID compatibili.
È anche possibile ottenere l'elenco degli ID hardware a livello di codice recuperando la proprietà DEVPKEY_Device_HardwareIds in un dispositivo. Ad esempio, tale proprietà può essere recuperata con API come IoGetDevicePropertyData, SetupDiGetDevicePropertyo CM_Get_DevNode_Property.
L'elenco degli ID hardware che questa routine recupera è un valore REG_MULTI_SZ. Il numero massimo di caratteri in un elenco hardware, incluso un terminatore NULL dopo ogni ID hardware e un terminatore NULL finale, è REGSTR_VAL_MAX_HCID_LEN. Il numero massimo possibile di ID in un elenco di ID hardware è 64.
Esempi di ID hardware
Ecco un esempio di identificatore generico per un dispositivo PnP:
root\*PNP0F08
Di seguito è riportato un esempio di identificatore di per un dispositivo PCI:
PCI\VEN_1000&DEV_0001&SUBSYS_00000000&REV_02