Compartilhar via


Implementando a interface de alta performance

Como o WMI carrega um provedor de alta performance em processo para o WMI ou um aplicativo cliente, você deve projetar seu provedor de alta performance como um servidor em processo. Além disso, você deve implementar os métodos de provedor de alta performance nas interfaces IWbemHiPerfProvider e IWbemRefresher.

Você deve implementar um provedor de alta performance como um servidor em processo. Um recurso que você deve conhecer ao implementar a segurança de um servidor em processo é como o provedor identifica seu próprio local. Quando carregado no processo para o WMI, o mesmo instancia o provedor usando um CLSID. Quando carregado em processo em um aplicativo cliente, o aplicativo cliente instancia o provedor com a propriedade ClientLoadableCLSID . Ao fornecer valores diferentes a um CLSID e ClientLoadableCLSID, você permite que o provedor determine se ele é carregado em processo para o WMI ou para um aplicativo cliente. Se localizado em um processo WMI, o provedor deverá fazer qualquer representação de cliente necessária usando ClientLoadableCLSID. Se localizado em um processo cliente, o provedor herda o token de acesso do thread em que é chamado. Para mais informações sobre como implementar um servidor em processo, consulte a documentação do COM (Component Object Model)..

Como um servidor em processo, um provedor de alta performance usa um objeto de atualização para manter os dados atualizados para o cliente remoto. A tabela a seguir lista os métodos que você deve implementar para um provedor de alta performance.

Método Recurso
IWbemHiPerfProvider::QueryInstances Consultas
IWbemHiPerfProvider::GetObjects Recuperação de objetos
IWbemHiPerfProvider::CreateRefresher Cria uma atualização
IWbemHiPerfProvider::CreateRefreshableObject Cria um objeto de instância atualizável.
IWbemHiPerfProvider::CreateRefreshableEnum Cria um enumerador atualizável.
IWbemHiPerfProvider::StopRefreshing Interrompe a atualização de um enumerador ou objeto de instância.
IWbemRefresher::Refresh Cria uma atualização

 

Transformando um provedor de instância em um provedor de alta performance