Écriture d’un fournisseur de classes

Un fournisseur de classes gère une classe ou une série de classes pour WMI. Un fournisseur de classe peut être push ou pull ; autrement dit, il peut stocker ses propres données ou autoriser WMI à stocker des données pour celle-ci dans le service de gestion Windows. Bien qu’un fournisseur de classes soit installé sur un ordinateur spécifique, il peut modifier les définitions de classe dans l’ensemble d’une entreprise. Par conséquent, la plupart des développeurs ne créent pas souvent des fournisseurs de classes.

Avant de construire un fournisseur de classes, vérifiez que les classes prises en charge doivent vraiment être générées dynamiquement. Dans la plupart des cas, la liste des classes est lente et finie. Si c’est le cas, vous n’avez pas besoin de créer un fournisseur de classes. En revanche, vous pouvez placer vos définitions de classe dans le référentiel WMI en utilisant l'API WMI ou un fichier MOF.

La procédure suivante décrit comment implémenter un fournisseur de classes.

Pour implémenter un fournisseur de classes

  1. Déterminez si votre fournisseur est un fournisseur push ou pull.

    Un fournisseur d’extraction fournit des données dynamiquement en réponse à une requête d’application, tandis que les fournisseurs push stockent leurs données une fois dans le référentiel WMI. Pour plus d’informations, consultez Détermination de l’état d’envoi ou d’extraction.

  2. Concevez et inscrivez votre fournisseur de classes auprès de WMI.

    Les fournisseurs de classes s'enregistrent auprès de WMI en créant une instance __Win32Provider et une instance __ClassProviderRegistration. Pour plus d’informations, consultez Inscription d’un fournisseur de classe.

  3. Implémentez l’interface IWbemProviderInit pour votre fournisseur.

    WMI utilise IWbemProviderInit pour charger et initialiser un fournisseur. Si vous concevez un fournisseur push, IWbemProviderInit est la seule interface que vous allez implémenter. Pour plus d'informations, voir Initialisation d'un fournisseur.

    Notes

    Les fournisseurs de classes sont fortement encouragés à utiliser le modèle multithreading « Both ».

     

  4. Ajoutez tout code supplémentaire nécessaire pour votre fournisseur.

    Pendant la conception de votre fournisseur, vous devrez probablement appeler des interfaces WMI. Pour plus d’informations, consultez Appel d’une méthode et Maintenance des niveaux de sécurité dans un fournisseur.

    Quand il s’agira de récupérer des informations pour un client, vous aurez peut-être besoin d’accéder aux niveaux de sécurité de ce client. Pour plus d’informations, consultez Emprunt d’identité d’un client.

  5. Implémenter l'interface IWbemServices pour votre fournisseur.

    L’interface IWbemServices est l’interface principale d’un fournisseur de classe pull. Pour plus d’informations, consultez Implémentation de l’interface primaire pour un fournisseur de classes.

  6. Remplacez le fournisseur préexistant par votre nouveau code.

    Cette étape n’est pas nécessaire si vous n’avez pas de fournisseur préexistant à écraser. Pour plus d’informations, consultez Mise à jour d’un fournisseur.