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 s’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 de classes.

Pour initialiser un fournisseur

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

    Quand WMI détermine qu’un client a besoin des 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 a terminé 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 requêtes 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 SetStatus sur WBEM_S_INITIALIZED.

    En retournant WBEM_S_INITIALIZED, un fournisseur indique qu’il est prêt à gérer les demandes provenant d’applications, de 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. Fournisseurs de vues WMI 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é d’espace de noms

Sécurisation de votre fournisseur