Desenvolver um provedor WMI

Um provedor é um objeto do COM (Component Object Model) que atua como um intermediário entre o WMI e um objeto gerenciado. Por exemplo, quando um aplicativo ou script solicita dados de disco usando a classe Win32_LogicalDisk do WMI, os dados são obtidos dinamicamente por meio do provedor Win32 pré-instalado.

Se você quiser fornecer dados por meio do WMI para outros aplicativos, crie um provedor de código não gerenciado escrevendo um servidor COM ou por meio dos assistentes da ATL do WMI no Visual Studio. Você pode escrever um provedor de código gerenciado usando o WMI no .NET Framework. Os tópicos desta seção descrevem o processo para escrever um provedor COM não gerenciado.

Observação

Para garantir que todas as definições de classe do WMI para objetos gerenciados sejam restauradas no repositório do WMI se o WMI tiver uma falha e reiniciar, use a instrução de pré-processador #pragma autorecover no arquivo MOF (Managed Object Format).

Um provedor consiste em classes definidas no esquema do MOF (Managed Object Format) e um arquivo DLL que executa as funções do provedor. Por exemplo, o MOF que define as classes do provedor Win32 é o CIMWin32.mof e a DLL é a CIMWin32.dll, ambas são encontradas em %windir%\System32\Wbem.

O esquema do MOF para o provedor pode conter vários tipos de provedor. Por exemplo, o Provedor de log de eventos tem tipos de instância, método e provedor de eventos em um arquivo MOF chamado Ntevt.mof. É recomendável que todas as classes e o esquema de registro para provedores relacionados sejam montados em um arquivo, em vez de criar um arquivo por classe.

Além de usar provedores pré-instalados, você pode criar seu próprio provedor para fornecer informações sobre um dispositivo de hardware ou as operações de software.

A tabela a seguir lista as tarefas básicas que criam um provedor.

Tarefa Descrição
Projetar classes de MOF (Managed Object Format) Desenvolva um modelo para as entidades que você deseja gerenciar por meio do WMI e crie um arquivo MOF (Managed Object Format) para descrever o esquema.
Fornecer dados para o WMI escrevendo um provedor Crie o provedor mais básico que está acoplado ao WMI.
Incorporar um provedor em um aplicativo Inclua o provedor como um componente dentro de um aplicativo se ele não for executado o tempo todo.
Como registrar um provedor Registre o provedor no COM e no WMI.
Inicializar um provedor Implemente as interfaces IWbemProviderInit e IWbemProviderInitSink.
Fazer chamadas ao WMI Chame interfaces do WMI com um provedor.
Representar um cliente Defina a segurança para acessar um aplicativo cliente.
Atualizar um provedor Faça aprimoramentos no provedor conforme necessário.
Descarregar um provedor Remova o provedor da memória durante o desligamento ou quando o provedor estiver ocioso.
Depurar provedores e Configuração de provedor e Solução de problemas de classes Depure seu provedor usando as facilidades fornecidas pelo WMI.
Obter e fornecer dados em um computador de 64 bits Avalie se você precisa de um provedor de compatibilidade para aplicativos de 32 bits ou se o provedor de 64 bits pode fornecer dados para ambos os clientes.

Os tópicos a seguir discutem as etapas necessárias para escrever diferentes tipos de provedores: