Compartilhar via


Inicializando um provedor

Uma das primeiras tarefas que você deve codificar para um provedor é o processo de inicialização, que abrange todas as tarefas que seu provedor deve executar que permitem enviar e receber informações do WMI, controlar um objeto gerenciado e executar outras tarefas. Cada tipo de provedor tem um conjunto diferente de tarefas que deve executar e tem um conjunto de interfaces exclusivas.

No entanto, todos os provedores inicializam por meio da interface IWbemProviderInit e informam a WMI sobre seu status de inicialização por meio da interface IWbemProviderInitSink .

O procedimento a seguir descreve como inicializar um provedor.

Para inicializar um provedor

  1. Implemente IWbemProviderInit::Initialize para seu provedor.

    Quando o WMI determina que um cliente requer os serviços de um provedor, o WMI carrega o provedor chamando o método IWbemProviderInit::Initialize .

  2. Implemente quaisquer interfaces exclusivas para o seu tipo de provedor.

  3. Informe ao WMI que seu provedor foi concluído com a inicialização chamando IWbemProviderInitSink::SetStatus.

    Todas as implementações de IWbemProviderInit::Initialize devem chamar IWbemProviderInitSink::SetStatus para relatar o status de inicialização para o WMI. O método SetStatus permite que o WMI determine se um provedor está pronto para receber solicitações e o tipo de solicitações que o provedor está pronto para receber.

O procedimento a seguir descreve como relatar uma inicialização bem-sucedida.

Para relatar uma inicialização bem-sucedida

  • Defina o parâmetro IStatus de SetStatus como WBEM_S_INITIALIZED.

    Ao retornar WBEM_S_INITIALIZED, um provedor indica uma preparação para lidar com solicitações de aplicativos, WMI e outros provedores. Depois de receber WBEM_S_INITIALIZED, a WMI faz uma chamada para o método IWbemProviderInit::QueryInterface no provedor. Essa consulta recupera um ponteiro para a interface primária do provedor.

O procedimento a seguir descreve como relatar um erro durante a inicialização.

Para relatar um erro durante a inicialização

  • Defina o parâmetro IStatus de SetStatus como WBEM_E_FAILED. O WMI exibe provedores que retornam WBEM_E_FAILED como não funcionais.

    O WMI libera o ponteiro IWbemProviderInit após o WMI ter obtido um ponteiro para a interface primária do provedor ou após a falha da inicialização.

Desenvolver um provedor WMI

Definindo descritores de segurança do namespace

Protegendo seu provedor