Uso di ID hardware personalizzati e ID compatibili

Come descritto in Stringhe di identificazione del dispositivo, di seguito è riportato il formato generico che un nuovo driver del bus deve usare per gli ID hardware Plug and Play (PnP) e gli ID compatibili.

enumerator\enumerator-specific-device-ID 

Dove:

  • Enumeratore identifica l'enumeratore (driver del bus) che rileva e segnala i dispositivi figlio in un bus al gestore PnP.

  • enumerator-specific-device-ID è un identificatore di dispositivo specifico per il driver del bus.

Se la configurazione o il funzionamento di un bus differisce in modo significativo da altri autobus, il conducente del bus per il bus deve usare un nome enumeratore univoco per garantire che i dispositivi figlio del bus non siano involontariamente e inappropriati raggruppati con dispositivi figlio enumerati dai conducenti degli autobus per questi altri autobus. Il driver del bus deve usare il formato seguente per segnalare le stringhe di identificazione del dispositivo al gestore PnP:

bus-type-guid\vendor-specific-id

Dove:

  • bus-type-guid è un GUID univoco che identifica il bus e deve essere lo stesso GUID usato per identificare il bus. Come descritto in Installazione di un driver del bus, il driver del bus identifica il tipo di bus per un dispositivo in risposta a una richiesta di IRP_MN_QUERY_BUS_INFORMATION per il dispositivo.

  • vendor-specific-id è un formato definito dal fornitore che in genere identifica il fornitore, il dispositivo, un sottosistema, un numero di revisione ed eventualmente altre informazioni sul dispositivo. Ad esempio, il formato può assumere il formato Vendor&Device&Subsystem&Revision, dove il carattere e commerciale ("&") delimita i sottocampi e il formato di ogni sottocampo è specifico del fornitore. Per esempi di stringhe di identificazione del dispositivo effettive, vedere Stringhe di identificazione del dispositivo.

Il gestore PnP invia IRP_MN_QUERY_ID richieste a un driver del bus per ottenere stringhe di identificazione del dispositivo per un dispositivo. Le stringhe di identificazione del dispositivo includono un ID dispositivo, un ID istanza del dispositivo, un elenco di ID hardware e un elenco di ID compatibili. Gli esempi fittizi seguenti includono un ID dispositivo, un elenco di ID hardware e un elenco di ID compatibili. In questi esempi l'enumeratore viene specificato dal sottocampo bus-type-guid , ovvero il GUID "{xxxxxxxx-yyyy-zzzz-xxxx-yy}". Il formato del campo ID specifico del fornitore è Vendor&Device&Subsystem&Revision, dove il sottocampo Vendor è "ven_1", il sottocampo Device è "dev_2", il sottocampo Sottosistema è "subsys_3" e il sottocampo Revisione è "rev_4".

Un ID dispositivo è l'ID hardware che rappresenta la descrizione più specifica di un dispositivo. Nell'esempio seguente l'ID dispositivo specifica il fornitore, il dispositivo, il sottosistema e la revisione.

{xxxxxxxx-yyyy-zzzz-xxxx-yyyyyyyyyyyy}\ven_1&dev_2&subsys_3&rev_4 

Un elenco di ID hardware specifica gli ID in ordine, dal più specifico al meno specifico. Nell'elenco seguente viene segnalata una stringa di identificazione del dispositivo come ID hardware se specifica almeno il fornitore, il dispositivo e il sottosistema. L'ID hardware che include la maggior parte delle informazioni è elencato per primo.

{xxxxxxxx-yyyy-zzzz-xxxx-yyyyyyyyyyyy}\ven_1&dev_2&subsys_3&rev_4 
{xxxxxxxx-yyyy-zzzz-xxxx-yyyyyyyyyyyy}\ven_1&dev_2&subsys_3 

Nell'elenco seguente viene segnalata una stringa di identificazione del dispositivo come ID compatibile se specifica almeno il fornitore e il dispositivo (posizioni 1 e 2), ma non specifica il sottosistema (posizione 3). L'ID compatibile che include la maggior parte delle informazioni è elencato per primo.

{xxxxxxxx-yyyy-zzzz-xxxx-yyyyyyyyyyyy}\ven_1&dev_2&rev_4 
{xxxxxxxx-yyyy-zzzz-xxxx-yyyyyyyyyyyy}\ven_1&dev_2

Se un driver viene installato usando un ID hardware, implica funzionalità complete per i dispositivi corrispondenti. Se un driver viene installato usando un ID compatibile, implica almeno funzionalità di base per i dispositivi corrispondenti. Un driver può usare un ID compatibile in modo che un driver generico possa funzionare su un numero elevato di dispositivi. Ad esempio, molti dei driver forniti dal sistema Windows corrispondono agli ID compatibili. Un driver che corrisponde a un ID hardware è in genere destinato a un piccolo set di dispositivi, ma offre funzionalità complete.