Escrever um provedor de instância

Um provedor de instância fornece instâncias de uma ou mais classes determinadas. Por exemplo, um provedor de instância pode fornecer informações sobre uma CPU ou outro tipo de hardware. Como os objetos gerenciados por um provedor de instância tendem a mudar regularmente, todos os provedores de instância são considerados provedores de pull, ou seja, um provedor que recupera dinamicamente informações sobre um objeto gerenciado sempre que o WMI faz uma solicitação das informações. O nome vem da ideia de que o WMI "extrai" as informações do provedor em nome de uma solicitação de cliente. Usando a tecnologia de pull, um provedor de instância pode dar suporte a recuperação, enumeração, modificação, exclusão e processamento de consulta de uma instância específica.

Provedores de alto desempenho podem aumentar a eficiência de um provedor de instância ou acessar programaticamente os dados que aparecem no Monitor do Sistema. Para saber mais, confira Transformar um provedor de instância em um provedor de alto desempenho.

O procedimento a seguir descreve como escrever um provedor de instância.

Para escrever um provedor de instância

  1. Registre o provedor com o WMI.

    Os provedores de instância registram-se na WMI criando uma instância de __Win32Provider e uma classe __InstanceProviderRegistration.

  2. Inicialize o provedor.

    O WMI usa o IWbemProviderInit para carregar e inicializar um provedor. Essa é uma tarefa comum a todos os provedores.

    Observação

    Os provedores de instância são fortemente encorajados a utilizar o modelo de multithreading "Both".

     

  3. Implemente a interface IWbemServices para o provedor.

    A interface IWbemServices é a interface primária de um provedor de instância.

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

    Ao projetar o provedor, você provavelmente precisará chamar as interfaces da WMI. Para obter mais informações, consulte Fazer chamadas para o WMI.

    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. Se necessário, implemente a interface de alto desempenho.

    A interface de alto desempenho aumenta a velocidade com que o provedor pode reagir às solicitações do WMI.

  6. Se necessário, implemente o suporte para atualizações de instância parcial.

    Como o nome indica, uma atualização de instância parcial é uma técnica usada para atualizar apenas parte de uma instância. Para obter mais informações sobre como chamar uma instância parcial de um cliente, consulte Atualizar parte de uma instância e Recuperar parte de uma instância do WMI.

  7. Substitua o provedor preexistente 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.