Compartilhar via


Implementar a interface de alto desempenho

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

Você deve implementar um provedor de alto desempenho como um servidor em processo. Uma questão que você deve estar ciente ao implementar a segurança de um servidor em processo é como o provedor identifica sua própria localização. Quando carregado em processo no WMI, o WMI cria uma instância do provedor usando um CLSID. Quando carregado em processo em um aplicativo cliente, o aplicativo cliente cria uma instância do provedor com a propriedade ClientLoadableCLSID. Ao fornecer valores diferentes para um CLSID e ClientLoadableCLSID, você permite que o provedor determine se ele é carregado em processo no WMI ou em um aplicativo cliente. Se estiver localizado em um processo do WMI, o provedor deverá fazer qualquer representação de cliente necessária usando ClientLoadableCLSID. Se estiver localizado em um processo cliente, o provedor herdará o token de acesso do thread em que ele é chamado. Para obter mais informações sobre como implementar um servidor em processo, veja a seção COM do MSDN.

Como um servidor em processo, um provedor de alto desempenho usa um objeto refresher 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 alto desempenho.

Método Recurso
IWbemHiPerfProvider::QueryInstances Consultas
IWbemHiPerfProvider::GetObjects Recuperação de objeto
IWbemHiPerfProvider::CreateRefresher Cria um atualizador
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 um atualizador

 

Transformar um provedor de instância em um provedor de alto desempenho