Partilhar 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 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

  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 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.

Desenvolvendo um provedor WMI

Definindo Descritores de Segurança Namepace

Proteger o seu fornecedor