Instance ID
Eine instance-ID ist eine Zeichenfolge, die vom Enumerator eines Geräts (dessen Bustreiber) gemeldet wird und ein Gerät von anderen Geräten desselben Typs auf einem Computer unterscheidet. Eine instance-ID enthält Seriennummerninformationen, sofern vom zugrunde liegenden Bus unterstützt, oder eine Art von Standortinformationen. Die Zeichenfolge darf keine "\"-Zeichen oder andere Zeichen enthalten, die in einer Antwort auf eine IRP_MN_QUERY_ID-Anforderung nicht zulässig sind. Andernfalls ist das generische Format der Zeichenfolge busspezifisch. Die Anzahl der Zeichen einer instance-ID, mit Ausnahme eines NULL-Abschlussators, muss kleiner als MAX_DEVICE_ID_LEN
sein. Darüber hinaus ist die instance-ID eine weitere Eingabe bei der Erstellung der Geräte-instance-ID, zusammen mit einer Geräte-ID, und die maximal mögliche Länge eines Geräts instance-ID ist MAX_DEVICE_ID_LEN
. Dies erfordert, dass die Länge der instance-ID ausreichend kleiner ist, als MAX_DEVICE_ID_LEN
dass die Geräte-instance-ID als Zeichenfolge mit einer Länge kleiner als MAX_DEVICE_ID_LEN
erstellt werden kann.
Das UniqueID-Element der DEVICE_CAPABILITIES-Struktur für ein Gerät gibt an, ob eine vom Bus bereitgestellte instance-ID systemweit eindeutig ist:
Wenn UniqueIDFALSE ist, ist die vom Bus bereitgestellte instance-ID für ein Gerät nur für den Bus des Geräts eindeutig. Der Plug & Play-Manager (PnP) ändert die vom Bus bereitgestellte instance-ID und kombiniert sie mit der entsprechenden Geräte-ID, um eine im System eindeutige Geräte-instance-ID zu erstellen.
Wenn UniqueIDTRUE ist, identifiziert das Gerät instance ID, die aus der vom Bus bereitgestellten Geräte-ID und instance ID gebildet wird, ein Gerät im System eindeutig.
Eine instance-ID ist bei Systemneustarts dauerhaft.
Der PnP-Manager fragt diese Zeichenfolge vom Bustreiber des Geräts mithilfe einer IRP_MN_QUERY_ID Anforderung ab, wobei das Feld Parameters.QueryId.IdType auf BusQueryInstanceID festgelegt ist.