Partilhar via


Projetando classes de formato de objeto gerenciado (MOF)

Um provedor WMI consiste em um arquivo MOF (Managed Object Format) e um arquivo DLL. O arquivo MOF define as classes para as quais a implementação do provedor fornece dados.

As definições de classe MOF são compiladas pelo utilitáriomofcompe armazenadas no repositório WMI , também conhecido como repositório CIM (Common Information Model). Uma maneira menos comum de criar classes é através dos métodos da API COM para WMI.

Observação

Para garantir que todas as definições de classe WMI para objetos gerenciados sejam restauradas no repositório WMI se o WMI tiver uma falha e for reiniciado, use a instrução #pragma autorecuperação pré-processador no arquivo MOF.

 

As seguintes seções são discutidas neste tópico:

Definindo os objetos a serem gerenciados

Depois de identificar a parte da sua empresa a ser gerenciada, defina os objetos a serem gerenciados. A definição deve incluir os dados necessários e permitir que você implemente as regras de negócios relevantes com precisão. Você pode definir objetos em um nível granular, mas é melhor decidir entre o nível de detalhe contido na definição e a necessidade de fornecer detalhes suficientes para ser útil. Os atalhos no início do processo podem poupar tempo, mas podem causar mais trabalho no futuro.

O Tutorial do CIM no site da Distributed Management Task Force (DMTF) contém excelentes informações sobre o processo de design. Para obter mais informações, consulte www.dmtf.org.

Considere os seguintes fatores ao desenvolver e implementar um design de esquema:

  • Eliminatórias

    Os qualificadores fornecem informações sobre como descrever classes, objetos, propriedades, métodos e parâmetros; e são aplicadas a definições de classe e propriedade. No código MOF, os qualificadores são colocados entre parênteses e podem incluir [chave] ou [associação]. Para obter mais informações, consulte Adicionando um Qualificador e Qualificadores WMI.

  • Espaço de nomes

    Um namespace é uma unidade lógica para agrupar classes e objetos e controlar o escopo e a visibilidade. Normalmente, um namespace contém um conjunto de classes e objetos que representam objetos gerenciados em um ambiente específico. Para obter mais informações, consulte Criando hierarquias no WMI.

  • Objeto

    Um objeto modelado pode ser um elemento físico ou lógico do esquema. Por exemplo, você pode modelar uma unidade de disco físico, como uma unidade de disco rígido, ou um disco lógico que pode ser uma partição em um disco físico. Um design que usa uma classe para modelar uma unidade de disco físico e, em seguida, estende essa classe para modelar um disco lógico é mais extensível do que um que tenta criar uma classe separada para cada tipo de disco.

  • Dados

    Os dados podem ser dinâmicos ou estáticos. Se os dados forem dinâmicos, você deverá criar um provedor de classe para eles.

    Para permitir que o usuário modifique dados, você deve determinar se deseja ou não que uma propriedade seja diretamente gravável ou modificável somente usando um método que o usuário chama.

Definindo propriedades ou métodos

Geralmente, uma propriedade de classe WMI é semelhante a uma propriedade em uma classe C++. Se as únicas ações que seu código implementa para a parte de dados é obter o valor ou definir o valor, então os dados devem ser definidos como uma propriedade da classe WMI.

Um método WMI geralmente executa uma ação que altera o estado de um objeto gerenciado. Por exemplo, se a ação for habilitar ou desabilitar a operação de um objeto de hardware, um método provavelmente é preferível à criação de uma propriedade de leitura/gravação. Você também pode decidir criar uma propriedade que exiba o estado do hardware.

Ao criar uma classe ou uma instância, você pode incluir comentários. Use esta técnica para documentar sua classe ou explicar suas técnicas de programação. Para obter mais informações, consulte Criando um comentário. Além disso, você pode adicionar dados para qualificar a finalidade de um objeto de dados. Para obter mais informações, consulte Adicionar um qualificador.

Relacionando objetos uns com os outros

Há duas maneiras de relacionar objetos entre si: criando objetos separados e um objeto de associação que os relaciona, ou incorporando um objeto no outro. O CIM não suporta objetos incorporados, portanto, para ser compatível com o CIM, você deve usar o primeiro método. No entanto, o WMI oferece suporte a objetos incorporados, portanto, use qualquer um dos métodos para representar uma relação entre objetos. Você pode encontrar exemplos de objetos incorporados no Win32 Classes. Por exemplo, Win32_SecurityDescriptor tem o objeto incorporado Win32_ACE, que tem outro objeto incorporado, Win32_Trustee.

Considere o seguinte ao decidir como representar relações entre objetos:

Desenvolvendo um provedor WMI

Fornecimento de dados para WMI

Tipos de dados MOF