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 lhe permite 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 interfaceIWbemProviderInit e informam o WMI de seu status de inicialização por meio da interfaceIWbemProviderInitSink.
O procedimento a seguir descreve como inicializar um provedor.
Para inicializar um provedor
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.
Implemente quaisquer interfaces exclusivas para o seu tipo de provedor.
Informe ao WMI que seu provedor terminou a inicialização chamando IWbemProviderInitSink::SetStatus.
Todas as implementações do 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 prontidão para lidar com solicitações de aplicativos, WMI e outros provedores. Depois de receber WBEM_S_INITIALIZED, o WMI faz uma chamada para o método IWbemProviderInit::QueryInterface no provedor. Esta 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 vê os 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 inicialização ter falhado.
Tópicos relacionados