Partager via


Détermination de l’état d’envoi ou d’extraction

Vous pouvez modéliser un fournisseur de classes en tant que fournisseur d’envoi (push) ou d’extraction (pull), ce qui indique la façon dont un fournisseur est censé interagir avec WMI. Les fournisseurs d’extraction reçoivent une requête de la part de WMI et y répondent en générant les données de manière dynamique ou en les extrayant à partir d’un cache local. Les fournisseurs d’extraction doivent également implémenter un grand nombre d’interfaces.

Un fournisseur d’extraction génère des définitions de classe de manière dynamique. En règle générale, les données gérées par un fournisseur d’extraction changent fréquemment, ce qui oblige le fournisseur à générer la classe de manière dynamique ou à l’extraire à partir d’un cache local chaque fois qu’une application émet une requête. Un fournisseur d’extraction doit implémenter ses propres mécanismes d’extraction de données, de mise en cache et de notification d’événements. Dans la mesure où la plupart des fournisseurs sont des fournisseurs d’extraction, la documentation de ce fichier part du principe que vous créez un fournisseur d’extraction, sauf indication contraire explicite.

En revanche, WMI utilise les données du dépôt WMI pour gérer toutes les requêtes d’application des fournisseurs d’envoi. Les fournisseurs d’envoi utilisent également moins de méthodes d’interface. Ils sont donc plus faciles à implémenter. Un fournisseur d’envoi utilise le dépôt WMI comme zone de stockage des informations sur l’objet managé, et met à jour ces informations uniquement durant l’initialisation. Par exemple, le fournisseur de classes WDM inclus dans la section WMI du kit SDK Microsoft Windows est modélisé en tant que fournisseur d’envoi.

En utilisant le dépôt WMI en tant que zone de stockage, un fournisseur d’envoi bénéficie des avantages suivants par rapport à un fournisseur d’extraction :

  • Le fournisseur n’a pas besoin d’implémenter un cache local pour stocker les données.
  • Le fournisseur n’a pas besoin de prendre en charge l’extraction de données. À la place, le fournisseur peut s’appuyer sur WMI pour fournir une prise en charge de l’extraction.
  • Quand une application demande des données fournies par le fournisseur, WMI répond à cette requête.
  • Le fournisseur peut également s’appuyer sur WMI pour prendre en charge la notification d’événements.

Toutefois, dans la mesure où un fournisseur d’envoi est mis à jour uniquement durant l’initialisation, les changements apportés à une classe risquent de ne pas être reflétés dans le dépôt WMI avant un certain temps. Ainsi, le modèle de fournisseur d’envoi fonctionne mieux avec des classes qui changent peu ou qui sont complètement statiques.