Inicializar um provedor
Uma das primeiras tarefas que você deve codificar para um provedor é o processo de inicialização, que abrange todas as tarefas que o provedor deve executar, permitindo que ele envie e receba informações do WMI, controle um objeto gerenciado e execute outras tarefas. Cada tipo de provedor tem um conjunto diferente de tarefas que precisa executar e um conjunto de interfaces exclusivas.
No entanto, todos os provedores são inicializados por meio da interface IWbemProviderInit e informam o WMI de seu status de inicialização por meio da interface IWbemProviderInitSink.
O procedimento a seguir descreve como inicializar um provedor.
Para inicializar um provedor
Implemente IWbemProviderInit::Initialize para o provedor.
Quando determina que um cliente requer os serviços de um provedor, o WMI carrega o provedor chamando o método IWbemProviderInit::Initialize.
Implemente qualquer interface exclusiva para o seu tipo de provedor.
Informe ao WMI que o provedor terminou 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 ele 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, o WMI e outros provedores. Depois de receber WBEM_S_INITIALIZED, o 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 funcional.
O WMI libera o ponteiro IWbemProviderInit após obter um ponteiro para a interface primária do provedor ou após a falha na inicialização.
Tópicos relacionados