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.
Bei WMI-Klassennamen wird die Groß-/Kleinschreibung nicht beachtet, sie müssen mit einem Buchstaben beginnen und dürfen nicht mit einem Unterstrich beginnen oder enden. Alle verbleibenden Zeichen müssen Buchstaben, Ziffern oder Unterstriche sein.
WMI-Clientanwendungen können auf die WMI-Klassennamen eines Treibers zugreifen und sie Benutzern anzeigen. Beschreibende Klassennamen können dazu beitragen, die Verwendung von Kursen intuitiver zu gestalten.
WMI-Klassennamen müssen innerhalb des WMI-Namespace eindeutig sein. Daher können die WMI-Klassennamen eines Treibers die von einem anderen Treiber definierten nicht duplizieren.
Um Namenskonflikte zu verhindern, kann ein Treiberschreiber eine treiberspezifische Basisklasse definieren und alle WMI-Klassen des Treibers von dieser Basisklasse ableiten. Wahrscheinlicher führen der Klassenname und der Basisklassenname zusammen zu einem eindeutigeren Namen. Das folgende Beispiel zeigt eine abstrakte Basisklasse für die Datenblöcke eines seriellen Treibers:
// Serial driver's base class for data blocks
[abstract]
class MSSerial {
}
// Example class definition for a data block
[
//Class qualifiers
]
class MSSerial_StandardSerialInformation : MSSerial
{
//Data items
}
Gerätespezifische benutzerdefinierte Datenblöcke sollten den Hersteller, das Modell und den Typ des Treibers oder Geräts im Basisklassennamen enthalten. Beispiel:
[abstract]
class Adaptec1542 {
}
class Adaptec1542_Bandwidth : Adaptec1542 {
//Data items
}
class Adaptec1542_Speed : Adaptec1542 {
//Data items
}
WMI lässt nur eine abstrakte Basisklasse in einer bestimmten Klassenhierarchie zu. Klassen, die Ereignisblöcke definieren, müssen von WmiEvent abgeleitet werden, was eine abstrakte Basisklasse ist, sodass der abstrakte Qualifizierer nicht in einer treiberdefinierten Basisklasse für Ereignisblöcke verwendet werden kann. Leiten Sie stattdessen eine nicht abstrakte Basisklasse von WmiEvent ab, und leiten Sie dann einzelne Ereignisklassen von dieser Basisklasse ab. Beispiel:
//Serial driver's base class for event blocks
class MSSerialEvent : WmiEvent
{
}
//Example class definition for an event block
[
//Class qualifiers
]
class MSSerial_SendEvent : MSSerialEvent
{
//Data items
}
Weitere Informationen zum Definieren von Basisklassen im MOF-Format finden Sie im Microsoft Windows SDK.