Freigeben über


Einrichten von Klassen im Vergleich zu Schnittstellenklassen

Es ist wichtig, zwischen den beiden Arten von Geräteklassen zu unterscheiden: Geräteschnittstellenklassen und Geräteeinrichtungsklassen. Die beiden können leicht verwechselt werden, da im Benutzermoduscode derselbe Satz von Geräteinstallationsfunktionen und derselbe Satz von Datenstrukturen (Geräteinformationssätze) mit beiden Klassen verwendet werden. Darüber hinaus gehört ein Gerät häufig zu einer Setupklasse und mehreren Schnittstellenklassen gleichzeitig. Dennoch dienen die beiden Klassentypen unterschiedlichen Zwecken, nutzen unterschiedliche Bereiche in der Registrierung und verlassen sich auf einen anderen Satz von Headerdateien zum Definieren von Klassen-GUIDs.

Geräteeinrichtungsklassen bieten einen Mechanismus zum Gruppieren von Geräten, die auf die gleiche Weise installiert und konfiguriert werden. Beispielsweise gehören alle CD-ROM-Laufwerke zur CDROM-Setupklasse.

Geräteschnittstellenklassen bieten einen Mechanismus zum Gruppieren von Geräten nach freigegebenen Merkmalen oder Funktionen. Anstatt das Vorhandensein eines einzelnen Geräts im System zu verfolgen, können Sich Treiber und Benutzeranwendungen registrieren, um über das Ein- oder Entfernen eines Geräts, das zu einer bestimmten Schnittstellenklasse gehört, benachrichtigt zu werden.

Setupklassen für Windows-Geräte sind in der Systemdatei Devguid.h definiert. Diese Datei definiert eine Reihe von GUIDs für Setupklassen. Die in Devguid.h dargestellten Geräteeinrichtungsklassen dürfen jedoch nicht mit Geräteschnittstellenklassen verwechselt werden. Die Datei Devguid.h enthält nur GUIDs für Setupklassen.

Definitionen von Schnittstellenklassen werden nicht in einer einzelnen Datei bereitgestellt. Eine Geräteschnittstellenklasse wird immer in einer Headerdatei definiert, die ausschließlich zu einer bestimmten Geräteklasse gehört. Ntddmou.h enthält beispielsweise die Definition von GUID_DEVINTERFACE_MOUSE, die GUID, die die Mausschnittstellenklasse darstellt. Ntddpar.h definiert die GUID der Schnittstellenklasse für parallele Geräte; Ntddpcm.h definiert die Standardschnittstellenklasse GUID für PCMCIA-Geräte. Ntddstor.h definiert die GuiD der Schnittstellenklasse für Speichergeräte usw.

Die GUIDs in Headerdateien, die für die Geräteschnittstellenklasse spezifisch sind, sollten verwendet werden, um sich für die Benachrichtigung über das Eintreffen eines instance einer Geräteschnittstelle zu registrieren. Wenn sich ein Treiber für Benachrichtigungen mit einer Setupklassen-GUID anstelle einer Schnittstellenklassen-GUID registriert, wird er nicht benachrichtigt, wenn eine Schnittstelle eintrifft.

Verwenden Sie beim Definieren einer neuen Setup- oder Schnittstellenklasse keine einzige GUID, um sowohl eine Setupklasse als auch eine Schnittstellenklasse zu identifizieren.

Weitere Informationen zu GUIDs finden Sie unter Verwenden von GUIDs in Treibern.