Partilhar via


Desenvolvendo um provedor WMI

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

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

Observação

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

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

O esquema MOF para o provedor pode conter vários tipos de provedor. Por exemplo, o Provedor de Log de Eventos tem tipos de provedor de instância, método e evento em um único arquivo MOF chamado Ntevt.mof. É recomendável que todas as classes e 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
Projetando classes de formato de objeto gerenciado (MOF) 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 ao WMI criando um fornecedor Crie o provedor mais básico acoplado ao WMI.
Incorporando um provedor em um aplicativo Inclua o provedor como um componente dentro de um aplicativo se ele não for executado o tempo todo.
Registrando um provedor Registre o provedor com COM e WMI.
inicializando um provedor Implemente o IWbemProviderInit e interfaces de IWbemProviderInitSink.
Efetuar Chamadas para o WMI Chame interfaces WMI de um provedor.
Fazer-se passar por um Cliente Defina a segurança para acessar um aplicativo cliente.
Atualizando um provedor Melhore o provedor conforme necessário.
Descarregando um provedor Remova o provedor da memória durante o desligamento ou quando o provedor estiver ocioso.
Provedores de depuração e Configuração do Provedor e Classes de Solução de Problemas Realize a depuração do seu provedor usando ferramentas fornecidas pelo WMI.
Obtendo e fornecendo dados em um computador de 64 bits Avalie se você precisa de um provedor de compatibilidade de 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: