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 |
Tópicos relacionados