WMI-klassnamn och basklasser

WMI-klassnamn är skiftlägesokänsliga, måste börja med en bokstav och kan inte börja eller sluta med ett understreck. Alla återstående tecken måste vara bokstäver, siffror eller understreck.

WMI-klientprogram kan komma åt en drivrutins WMI-klassnamn och visa dem för användare. Beskrivande klassnamn kan göra klasser mer intuitiva att använda.

WMI-klassnamn måste vara unika i WMI-namnområdet. Därför kan inte en drivrutins WMI-klassnamn duplicera dem som definierats av en annan drivrutin.

För att förhindra namnkollisioner kan en drivrutinsskrivare definiera en drivrutinsspecifik basklass och härleda alla förarens WMI-klasser från den basklassen. Klassnamnet och basklassnamnet tillsammans är mer benägna att ge ett unikt namn. Följande visar till exempel en abstrakt basklass för en seriedrivrutins datablock:

// 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
}

Enhetsspecifika anpassade datablock bör innehålla tillverkare, modell och typ av drivrutin eller enhet i basklassnamnet. Till exempel:

[abstract]
class Adaptec1542 {
}
 
class Adaptec1542_Bandwidth : Adaptec1542 {
    //Data items
}
 
class Adaptec1542_Speed : Adaptec1542 {
    //Data items
}

WMI tillåter endast en abstrakt basklass i en viss klasshierarki. Klasser som definierar händelseblock måste härledas från WmiEvent, som är en abstrakt basklass, så att den abstrakta kvalificeraren inte kan användas i en drivrutinsdefinierad basklass för händelseblock. Härled i stället en nonabstract-basklass från WmiEvent och härled sedan enskilda händelseklasser från den basklassen. Till exempel:

//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
}

Mer information om hur du definierar basklasser i MOF-format finns i Microsoft Windows SDK.