Liaison d’un filtre d’événements à un consommateur logique
Après avoir créé le consommateur d’événements logiques et le filtre d’événements, vous devez les lier, ce qui permet d’inscrire le consommateur logique pour recevoir une notification concernant les événements spécifiés par le filtre.
La procédure suivante décrit comment lier un filtre d’événement à un consommateur logique.
Pour lier un filtre d’événement à un consommateur logique
Créez une instance de la classe système _ _ FilterToConsumerBinding dans l’espace de stockage WMI.
La classe _ _ FilterToConsumerBinding est une classe d’association qui lie l’instance de filtre d’événements et l’instance de consommateur logique à l’aide des propriétés de référence de filtre et de consommateur . Pour plus d’informations, consultez déclaration d’une classe d’association.
Définissez la propriété Filter sur l’instance de votre filtre.
Affectez à la propriété de consommateur l’instance de votre consommateur logique.
Définissez la propriété DeliverSynchronously pour déterminer le type de remise souhaité.
La propriété DeliverSynchronously détermine quand WMI remet les notifications d’événements de façon synchrone ou asynchrone. L’affectation de la valeur true à cette propriété demande une remise synchrone. Utilisez la remise synchrone uniquement lorsque le consommateur permanent peut traiter des événements dans environ 100 microsecondes.
Notes
Étant donné que le rappel au récepteur peut ne pas être retourné au même niveau d’authentification que celui requis par le client, il est recommandé d’utiliser le mode semi-synchrone au lieu de la communication asynchrone. Pour plus d’informations, consultez appel d’une méthode.
Lors de l’annulation de l’inscription de votre consommateur d’événements logiques, veillez à supprimer l’instance _ _ FilterToConsumerBinding .
Chaque instance _ _ FilterToConsumerBinding représente une inscription pour une notification d’événement spécifique. Lorsque vous supprimez une liaison, WMI désactive l’inscription. Vous devrez peut-être supprimer les instances de consommateur logique et de filtre d’événements pour désactiver l’inscription, en fonction de l’implémentation.
L’exemple de code suivant montre une instance _ _ FilterToConsumerBinding qui associe une instance d’une classe ActiveScriptEventConsumer à un filtre d’événement spécifique (l’instance du consommateur d’événements a été créée dans la rubrique création d’un consommateur logique et le filtre d’événement a été créé dans la rubrique création d’un filtre d’événements ).
instance of __FilterToConsumerBinding
{
Filter = $FILTER;
Consumer = $CONSUMER;
DeliverSynchronously=FALSE;
// this is the Administrators SID in array of bytes format
CreatorSID = {1,2,0,0,0,0,0,5,32,0,0,0,32,2,0,0};
};
Deux consommateurs, ActiveScriptEventConsumer et CommandLineEventConsumer, ne fonctionneront pas, sauf si leur créateur est membre du groupe Administrateurs local.
: Lorsqu’un administrateur crée un abonnement, son SID n’est pas utilisé pour la propriété CreatorSID , mais le SID du groupe Administrateurs local est utilisé à la place. Par conséquent, les instances peuvent être créées par des administrateurs différents et l’abonnement fonctionnera toujours. Pour plus d’informations, consultez réception d’événements en toute sécurité.
lorsqu’un filtre est lié à un consommateur logique, l’événement est enregistré par le suivi d’événements pour Windows (ETW). Pour plus d’informations, consultez suivi de l' activité WMI.