Partilhar via


Escrever um provedor de método

Um provedor de métodos permite o acesso à WMI aos métodos de uma classe. Por exemplo, uma classe que representa um aplicativo pode ter um método que encerra o aplicativo.

Alterar a ordem dos parâmetros de entrada e saída do método ao atualizar um provedor de método existente pode causar falha para os aplicativos que chamam o método. A ordem dos parâmetros de entrada ou saída é estabelecida pelo valor do qualificador de ID em cada parâmetro. O primeiro parâmetro tem um valor de ID igual a zero. Adicione novos parâmetros de entrada no final dos parâmetros existentes em vez de inseri-los na sequência já estabelecida.

O procedimento a seguir descreve como implementar um provedor de método.

Para implementar um provedor de método

  1. Crie e registre seu provedor de classe com o WMI.

    Os provedores da classe registram-se no WMI criando uma instância de __Win32Provider e uma classe __MethodProviderRegistration. Para obter mais informações, consulte Registrar um provedor de método.

  2. Implemente a interface IWbemProviderInit em seu provedor.

    Observação

    Os provedores de métodos são fortemente encorajados a utilizar o modelo de multithreading "Both".

     

  3. Implemente o método IWbemServices::ExecMethodAsync para seu provedor.

    A interface IWbemServices é a interface primária de um provedor de métodos. Para obter mais informações, consulte Implementando a interface primária para um provedor de método.

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

    Ao projetar o provedor, você provavelmente precisará chamar as interfaces do WMI. Para obter mais informações, consulte Chamar um método e Manter níveis de segurança em um provedor.

    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, confira Como representar um cliente.

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