Compartilhar via


Adicionar uma propriedade do WMI

Propriedades em classes do WMI descrevem dados sobre um objeto gerenciado. Por exemplo, Handle, ProcessId e PageFaults são definidos como propriedades da classe Win32_Process e descrevem aspectos de um processo do sistema operacional. Para obter mais informações, consulte Escrever um provedor de propriedades.

Definir uma propriedade no MOF

Uma propriedade do WMI representa um aspecto ou estado no objeto. Em vez de criar métodos que simplesmente obtêm e definem um valor, você pode criar uma propriedade. Por exemplo, a propriedade NetEnabled do Win32_NetworkAdapter exibe se o estado do adaptador está habilitado ou desabilitado. No entanto, os métodos Enable e Disable realmente executam a ação de alterar o estado do adaptador.

Uma propriedade deve ter um tipo de dados. O tipo de dados da propriedade Handle do Win32_Process é string e o tipo de dados da pageFaults é uint32. Se uma propriedade puder ter apenas dois estados, o tipo de dados da propriedade normalmente será definido como booliano.

A propriedade também pode ser uma matriz. Por exemplo, a propriedade SID (identificador de segurança) do Win32_Trustee é uma matriz de bytes (uint8) que contém o SID. As propriedades podem conter objetos inseridos que são referências a uma ou mais instâncias de outra classe do WMI. As propriedades DACL (lista de controle de acesso discricionário) e SACL (lista de controle de acesso do sistema) do Win32_SecurityDescriptor, por exemplo, são matrizes de objetos Win32_ACE que descrevem os grupos e contas que têm acesso. A propriedade Group no Win32_SecurityDescriptor contém uma referência a uma única instância de Win32_Trustee. Para obter mais informações, confira Inserir objetos em uma classe.

Uma propriedade pode ter vários qualificadores. Esses qualificadores podem ser do CIM (Common Information Model) ou do WMI, ou podem ser específicos de determinados tipos de classes, por exemplo, os qualificadores da classe Contador de desempenho. Os qualificadores especificam algum aspecto da propriedade, como se ela é somente leitura ou se não pode ser alterada sem um privilégio específico. Um aplicativo que tenta gravar na propriedade DACL do Win32_SecurityDescriptor, por exemplo, requer os privilégios SeSecurityPrivilege e SeRestorePrivilege. Para obter mais informações, confira Adicionar um qualificador.

Por fim, uma propriedade deve ter um nome. Você pode dar a uma propriedade qualquer nome dentro dos limites da prática de programação padrão. No entanto, há duas exceções importantes. Primeiro, você não pode usar nenhuma palavra-chave do MOF, como "class", como nome de propriedade. Em segundo lugar, você também não pode usar palavras-chave da WQL, como "group", como nome de propriedade. Para obter mais informações sobre palavras-chave do MOF e da WQL, confira Tipos de dados do MOF e WQL (SQL para WMI).

No código C++ e no MOF (Managed Object Format), você declara as propriedades de uma classe ao mesmo tempo em que declara a classe .

Para definir uma propriedade

  • Inclua o tipo de dados de propriedade, o nome e um valor padrão opcional e o qualificador entre as chaves da descrição da classe.

    class MyClass 
    {
        [key] string   strProp;
        sint32         dwProp1 = 21;
        uint32         dwProp2;
    };
    

    A classe MyClass no exemplo anterior tem três propriedades: uma cadeia de caracteres, um inteiro com sinal de 32 bits e um inteiro sem sinal de 32 bits. Cada propriedade recebe um nome que não diferencia maiúsculas de minúsculas e um tipo de dados do MOF.

    O qualificador Key define a propriedade de cadeia de caracteres como a propriedade de chave que identifica exclusivamente uma instância da classe. Para obter mais informações sobre qualificadores, confira Adicionar um qualificador.

Criar uma classe