Partager via


Implémentation de l’interface haute performance

Étant donné que WMI charge un fournisseur haute performance dans le processus de WMI ou d’une application cliente, vous devez concevoir votre fournisseur haute performance comme un serveur en processus. De plus, vous devez implémenter les méthodes du fournisseur haute performance dans les interfaces IWbemHiPerfProvider et IWbemRefresher.

Vous devez implémenter un fournisseur haute performance comme un serveur en processus. Une caractéristique dont vous devez être conscient lors de la mise en œuvre de la sécurité d’un serveur en processus est la manière dont le fournisseur identifie sa propre localisation. Lorsqu’il est chargé dans le processus de WMI, WMI instancie le fournisseur en utilisant un CLSID. Lorsqu’il est chargé dans le processus d’une application cliente, l’application cliente instancie le fournisseur avec la propriété ClientLoadableCLSID. En donnant des valeurs différentes à un CLSID et ClientLoadableCLSID, vous permettez au fournisseur de déterminer s’il est chargé dans le processus de WMI ou d’une application cliente. S’il se trouve dans un processus WMI, le fournisseur doit faire toute usurpation de client nécessaire en utilisant ClientLoadableCLSID. S’il se trouve dans un processus client, le fournisseur hérite du jeton d’accès du thread sur lequel il est appelé. Pour plus d’informations sur la mise en œuvre d’un serveur en processus, veuillez consulter la documentation du Component Object Model (COM).

En tant que serveur en processus, un fournisseur haute performance utilise un objet rafraîchissant pour maintenir les données à jour pour le client distant. Le tableau suivant liste les méthodes que vous devez implémenter pour un fournisseur haute performance.

Method Fonctionnalité
IWbemHiPerfProvider::QueryInstances Requêtes
IWbemHiPerfProvider::GetObjects Récupération d’objet
IWbemHiPerfProvider::CreateRefresher Crée un actualiseur
IWbemHiPerfProvider::CreateRefreshableObject Crée un objet d’instance actualisable
IWbemHiPerfProvider::CreateRefreshableEnum Crée un énumérateur actualisable
IWbemHiPerfProvider::StopRefreshing Arrête l’actualisation d’un énumérateur ou d’un objet d’instance
IWbemRefresher::Refresh Crée un actualiseur

 

Transformation d’un fournisseur d’instance en fournisseur haute performance