Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Hardware-ID ist eine vom Hersteller definierte Identifikationszeichenfolge, die Windows zum Abgleichen eines Geräts mit einem Treiberpaketverwendet. Eine Hardware-ID identifiziert ein Gerät. Es gibt an, dass jedes Treiberpaket, das es deklariert, mit einem Gerät arbeiten kann, das über diese ID für einen gewissen Grad an Funktionalität verfügt.
In den meisten Fällen verfügt ein Gerät über mehr als eine Hardware-ID. In der Regel wird eine Liste der Hardware-IDs für ein Gerät von den am besten bis am wenigsten geeigneten sortiert. Die Liste der konzeptionellen Hardware-IDs für ein Gerät könnte z. B. wie folgt aussehen:
<Product X made by company Y with firmware revision Z>
<Product X made by company Y that is a device of type W>
Wenn die tatsächlichen Hardware-IDs diese Konzepte mithilfe von Zeichenfolgen darstellen würden, die den Formatanforderungen einer Hardware-ID entsprechen.
Erstellen einer Hardware-ID für ein Gerät
Hardware-IDs werden dem Plug and Play Manager (PnP) durch den Enumerator eines Geräts gemeldet, d. h. dem Bustreiber. Wenn der Autor eines Bustreibers eine neue Hardware-ID für ein Gerät erstellen muss, das er an PnP meldet, verwendet er in der Regel eines der folgenden generischen Formate:
<enumerator>\<enumerator-specific-device-ID>
Dieses Format ist das am häufigsten für einzelne PnP-Geräte, die vom Plug and Play-Manager von einem einzelnen Enumerationsmodul gemeldet werden.
\*<generic-device-ID>
Das Sternchen gibt an, dass mehr als ein Enumerator das Gerät unterstützt, z. B. ISAPNP und das BIOS.
<device-class-specific-ID>
Weitere Informationen finden Sie unter Generische Bezeichner.
Eine vorhandene Geräteklasse mit einer eigenen etablierten Benennungskonvention kann ein benutzerdefiniertes Format verwenden. Informationen zu ihren Hardware-ID-Formaten finden Sie in der Hardwarespezifikation für solche Busse.
Die Anzahl der Zeichen einer Hardware-ID, mit Ausnahme eines NULL-Terminators, muss kleiner als MAX_DEVICE_ID_LENsein. Diese Einschränkung gilt für die Summe der Längen aller Felder und aller \\-Feldtrennzeichen in einer Hardware-ID. Weitere Informationen finden Sie im Abschnitt "Vorgang " von IRP_MN_QUERY_ID.
Hardware-IDs für aufgezählte Stammgeräte
Aufgezählte Stammgeräte sind insofern besonders, als sie mithilfe von APIs erstellt werden können, bei denen eine Hardware-ID bereitgestellt werden kann. Aufgezählte Stammgeräte mit Hardware-IDs, die generische Namespaces gemeinsam nutzen, wie zum Beispiel ROOT\SYSTEM, könnten Konflikte auftreten. Das Ergebnis ist ein Gelbknallfehlersymbol im Geräte-Manager beim Aktualisieren von Windows.
Sie können diesen Fehler verhindern, indem Sie für jeden Treiber, der ein root-enumeriertes Gerät hat, einen eindeutigen Namespace verwenden. Verwenden Sie für ein USB- oder Systemgerät statt ROOT\USB oder ROOT\SYSTEMROOT\[COMPANYNAME]\[DEVICENAME]. Überprüfen Sie dann vor der Installation, ob „devnode” bereits vorhanden ist.
Abrufen der Liste der Hardware-IDs für ein Gerät
Führen Sie die folgenden Schritte aus, um die Liste der Hardware-IDs für ein Gerät zu finden:
- Geben Sie in der Windows-Suche Geräte-Manager ein, und wählen Sie sie aus.
- Suchen Sie im Geräte-Manager das Gerät im Baum.
- Klicken Sie mit der rechten Maustaste auf das Gerät, und wählen Sie Eigenschaften aus.
- Wählen Sie die Registerkarte Details aus.
- Wählen Sie für EigenschaftHardware-IDs oder Kompatible IDs aus.
Sie können auch die Liste der Hardware-IDs programmgesteuert abrufen, indem Sie die eigenschaft DEVPKEY_Device_HardwareIds auf einem Gerät abrufen. Diese Eigenschaft kann beispielsweise mit APIs wie IoGetDevicePropertyData-, SetupDiGetDeviceProperty-oder CM_Get_DevNode_Propertyabgerufen werden.
Die von dieser Routine abgerufene Liste der Hardware-IDs ist ein REG_MULTI_SZ-Wert. Die maximale Anzahl von Zeichen in einer Hardwareliste, einschließlich eines NULL-Abschlusszeichens nach jeder Hardware-ID und einem endgültigen NULL-Abschlusszeichen, ist REGSTR_VAL_MAX_HCID_LEN. Die maximale Anzahl von IDs in einer Liste der Hardware-IDs beträgt 64.
Beispiele für Hardware-IDs
Hier sehen Sie ein Beispiel für einen generischen Bezeichner für ein PnP-Gerät.
root\*PNP0F08
Hier ist ein Beispiel für einen Bezeichner für ein PCI-Gerät:
PCI\VEN_1000&DEV_0001&SUBSYS_00000000&REV_02