ID istanza

Un ID istanza è una stringa segnalata dall'enumeratore di un dispositivo (il relativo driver del bus) e distingue un dispositivo da altri dispositivi dello stesso tipo in un computer. Un ID istanza contiene informazioni sul numero di serie, se supportate dal bus sottostante o da alcuni tipi di informazioni sulla posizione. La stringa non può contenere caratteri "\" o qualsiasi altro carattere non consentito in una risposta a una richiesta di IRP_MN_QUERY_ID ; in caso contrario, il formato generico della stringa è specifico del bus. Il numero di caratteri di un ID istanza, escluso un terminatore NULL, deve essere minore di MAX_DEVICE_ID_LEN. Inoltre, l'ID istanza è un altro input nella creazione dell'ID istanza del dispositivo, insieme a un ID dispositivo e la lunghezza massima possibile di un ID istanza del dispositivo è MAX_DEVICE_ID_LEN. Ciò richiede che la lunghezza dell'ID dell'istanza sia sufficiente rispetto MAX_DEVICE_ID_LEN all'ID istanza del dispositivo che può essere creata come stringa con lunghezza minore di MAX_DEVICE_ID_LEN.

Il membro UniqueID della struttura di DEVICE_CAPABILITIES per un dispositivo indica se un ID istanza fornito dal bus è univoco nel sistema, come indicato di seguito:

  • Se UniqueID è FALSE, l'ID istanza fornito dal bus per un dispositivo è univoco solo per il bus del dispositivo. Il gestore Plug and Play (PnP) modifica l'ID istanza fornita dal bus e lo combina con l'ID dispositivo corrispondente per creare un ID istanza del dispositivo univoco nel sistema.

  • Se UniqueID è TRUE, l'ID istanza del dispositivo, formato dall'ID dispositivo fornito dal bus e dall'ID istanza, identifica in modo univoco un dispositivo nel sistema.

Un ID istanza è persistente tra i riavvii di sistema.

Il gestore PnP esegue una query su questa stringa dal driver del bus di dispositivo usando una richiesta di IRP_MN_QUERY_ID con il campo Parameters.QueryId.IdType impostato su BusQueryInstanceID.