Nomi di classi WMI e classi di base
I nomi delle classi WMI sono senza distinzione tra maiuscole e minuscole, devono iniziare con una lettera e non possono iniziare o terminare con un carattere di sottolineatura. Tutti i caratteri rimanenti devono essere lettere, cifre o caratteri di sottolineatura.
Le applicazioni client WMI possono accedere ai nomi delle classi WMI di un driver e visualizzarli agli utenti. I nomi delle classi descrittivi consentono di rendere le classi più intuitive da usare.
I nomi delle classi WMI devono essere univoci nello spazio dei nomi WMI. Di conseguenza, i nomi di classe WMI di un driver non possono duplicare quelli definiti da un altro driver.
Per impedire le collisioni dei nomi, un writer driver può definire una classe di base specifica del driver e derivare tutte le classi WMI del driver da tale classe di base. Il nome della classe e il nome della classe di base insieme sono più probabile che restituiscano un nome univoco. Ad esempio, la seguente mostra una classe base astratta per i blocchi di dati di un driver seriale:
// 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
}
I blocchi di dati personalizzati specifici del dispositivo devono includere il produttore, il modello e il tipo di driver o dispositivo nel nome della classe di base. Ad esempio:
[abstract]
class Adaptec1542 {
}
class Adaptec1542_Bandwidth : Adaptec1542 {
//Data items
}
class Adaptec1542_Speed : Adaptec1542 {
//Data items
}
WMI consente una sola classe di base astratta in una determinata gerarchia di classi. Le classi che definiscono blocchi di eventi devono derivare da WmiEvent, ovvero una classe di base astratta, in modo che il qualificatore astratta non possa essere usato in una classe di base definita dal driver per i blocchi eventi. Derivare invece una classe di base nonabstract da WmiEvent, quindi derivare singole classi di evento da tale classe di base. Ad esempio:
//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
}
Per altre informazioni sulla definizione delle classi di base in formato MOF, vedere la Microsoft Windows SDK.