Partilhar via


Escrevendo um provedor de classes

Um provedor de classe gerencia uma classe ou série de classes para WMI. Um provedor de classe pode ser push ou pull; ou seja, ele pode armazenar seus próprios dados ou permitir que o WMI armazene dados para ele no Serviço de Gerenciamento do Windows. Embora um provedor de classe esteja instalado em uma máquina específica, 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 suportadas realmente devem ser geradas dinamicamente. Na maioria dos casos, a lista de classes é de mudança lenta e finita. Se esse for o caso, você não deve ter que criar um provedor de classe. Em vez disso, você pode colocar suas definições de classe no repositório WMI usando a API 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 seu provedor é um provedor push ou pull.

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

  2. Conceba e registe o seu fornecedor de classe com o WMI.

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

  3. Implemente o interface de IWbemProviderInit para seu provedor.

    O WMI usa IWbemProviderInit para carregar e inicializar um provedor. Se você estiver projetando um provedor push, IWbemProviderInit é a única interface que você implementará. Para obter mais informações, consulte inicializando um provedor.

    Observação

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

     

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

    Ao projetar seu provedor, você provavelmente precisará chamar interfaces WMI. Para obter mais informações, consulte chamando um método e Mantendo 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 Fazer-se passar por um cliente.

  5. Implemente a interface IWbemServices para o seu fornecedor.

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

  6. Substitua o provedor preexistente pelo novo código.

    Você não precisa executar esta etapa se não tiver um provedor preexistente para copiar. Para obter mais informações, consulte Atualização de um Provedor.