Partager via


Initialisation d’un fournisseur

L’une des premières tâches que vous devez coder pour un fournisseur est le processus d’initialisation, qui couvre toutes les tâches que votre fournisseur doit effectuer qui lui permet d’envoyer et de recevoir des informations de WMI, de contrôler un objet managé et d’effectuer d’autres tâches. Chaque type de fournisseur a un ensemble différent de tâches qu’il doit effectuer et a un ensemble d’interfaces uniques qui l’accompagne.

Toutefois, tous les fournisseurs initialisent via l’interface IWbemProviderInit et informent WMI de leur état d’initialisation via l’interface IWbemProviderInitSink .

La procédure suivante décrit comment initialiser un fournisseur.

Pour initialiser un fournisseur

  1. Implémentez IWbemProviderInit ::Initialize pour votre fournisseur.

    Lorsque WMI détermine qu’un client requiert les services d’un fournisseur, WMI charge le fournisseur en appelant la méthode IWbemProviderInit ::Initialize .

  2. Implémentez toutes les interfaces propres à votre type de fournisseur.

  3. Informez WMI que votre fournisseur est terminé avec l’initialisation en appelant IWbemProviderInitSink ::SetStatus.

    Toutes les implémentations de IWbemProviderInit ::Initialize doivent appeler IWbemProviderInitSink ::SetStatus pour signaler l’état d’initialisation à WMI. La méthode SetStatus permet à WMI de déterminer si un fournisseur est prêt à recevoir des demandes et le type de demandes que le fournisseur est prêt à recevoir.

La procédure suivante décrit comment signaler une initialisation réussie.

Pour signaler une initialisation réussie

  • Définissez le paramètre IStatus de SetStatussur WBEM_S_INITIALIZED.

    En retournant WBEM_S_INITIALIZED, un fournisseur indique une disponibilité pour gérer les demandes des applications, WMI et d’autres fournisseurs. Après avoir reçu WBEM_S_INITIALIZED, WMI effectue un appel à la méthode IWbemProviderInit ::QueryInterface sur le fournisseur. Cette requête récupère un pointeur vers l’interface principale du fournisseur.

La procédure suivante décrit comment signaler une erreur lors de l’initialisation.

Pour signaler une erreur lors de l’initialisation

  • Définissez le paramètre IStatus de SetStatus sur WBEM_E_FAILED. Les vues WMI considèrent les fournisseurs qui retournent WBEM_E_FAILED comme non fonctionnels.

    WMI libère le pointeur IWbemProviderInit une fois que WMI a obtenu un pointeur vers l’interface principale du fournisseur ou après l’échec de l’initialisation.

Développement d’un fournisseur WMI

Définition des descripteurs de sécurité de l’espace de noms

Sécurisation de votre fournisseur