Compartilhar via


Nomes de classe WMI e classes base

Os nomes de classe WMI não diferenciam maiúsculas de minúsculas, devem começar com uma letra e não podem começar ou terminar com um sublinhado. Todos os caracteres restantes devem ser letras, dígitos ou sublinhados.

Os aplicativos cliente WMI podem acessar os nomes de classe WMI de um driver e exibi-los aos usuários. Nomes de classe descritivos podem ajudar a tornar as classes mais intuitivas de usar.

Os nomes de classe WMI devem ser exclusivos dentro do namespace WMI. Consequentemente, os nomes de classe WMI de um driver não podem duplicar aqueles definidos por outro driver.

Para ajudar a evitar colisões de nome, um gravador de driver pode definir uma classe base específica do driver e derivar todas as classes WMI do driver dessa classe base. O nome da classe e o nome da classe base juntos são mais propensos a produzir um nome exclusivo. Por exemplo, o seguinte mostra uma classe base abstrata para blocos de dados de um driver serial:

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

Os blocos de dados personalizados específicos do dispositivo devem incluir o fabricante, o modelo e o tipo de driver ou dispositivo no nome da classe base. Por exemplo:

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

O WMI permite apenas uma classe base abstrata em uma determinada hierarquia de classe. Classes que definem blocos de eventos devem derivar de WmiEvent, que é uma classe base abstrata, portanto, o qualificador abstrato não pode ser usado em uma classe base definida pelo driver para blocos de eventos. Em vez disso, derive uma classe base nonabstract de WmiEvent e, em seguida, derive classes de evento individuais dessa classe base. Por exemplo:

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

Para obter mais informações sobre como definir classes base no formato MOF, consulte o SDK do Microsoft Windows.