Escrever um provedor de classe

Um provedor de classe gerencia uma classe ou uma série de classes para o WMI. Um provedor de classe pode ser push ou pull, ou seja, ele pode armazenar seus dados ou permitir que o WMI armazene dados para ele no Serviço de Gerenciamento do Windows. Embora um provedor de classe seja instalado em um computador específico, ele pode alterar as definições de classe em toda a empresa. Portanto, a maioria dos desenvolvedores geralmente não cria provedores de classe.

Antes de construir um provedor de classe, verifique se as classes com suporte realmente devem ser geradas dinamicamente. Na maioria dos casos, a lista de classes muda lentamente e é finita. Se for esse o caso, você não deverá criar um provedor de classe. Em vez disso, você pode colocar suas definições de classe no repositório do WMI usando a API do WMI ou um arquivo MOF.

O procedimento a seguir descreve como implementar um provedor de classe.

Para implementar um provedor de classe

  1. Determine se o provedor é um provedor de push ou pull.

    Um provedor de pull fornece dados dinamicamente em resposta a uma solicitação de aplicativo, enquanto provedores de push armazenam seus dados uma vez no repositório do WMI. Para obter mais informações, consulte Determinar o status de push ou pull.

  2. Crie e registre seu provedor de classe com o WMI.

    Os provedores da classe registram-se na WMI criando uma instância de __Win32Provider e uma instância de __ClassProviderRegistration. Para obter mais informações, consulte Registrar um provedor de classe.

  3. Implemente a interface IWbemProviderInit em seu provedor.

    A WMI usa o IWbemProviderInit para carregar e inicializar um provedor. Se você estiver criando um provedor de push, IWbemProviderInit será a única interface a implementar. Para obter mais informações, consulte Inicializar um provedor.

    Observação

    Os provedores de classe são fortemente encorajados a utilizar o modelo de multithreading "Both".

     

  4. Adicione qualquer código adicional necessário para o provedor.

    Ao projetar o provedor, você provavelmente precisará chamar as interfaces do WMI. Para obter mais informações, consulte Chamar um método e Manter níveis de segurança em um provedor.

    Ao recuperar informações para um cliente, talvez seja necessário acessar os níveis de segurança desse cliente. Para obter mais informações, consulte Representar um cliente.

  5. Implemente a interface IWbemServices para o provedor.

    A interface IWbemServices é a interface primária de um provedor de classe de pull. Para obter mais informações, consulte Implementando a interface primária para um provedor de classe.

  6. Substitua o provedor pré-existente pelo novo código.

    Você não precisa executar esta etapa caso não tenha um provedor preexistente para copiar. Para mais informações, consulte Atualizar um provedor.