WmiFireEvent, fonction (wmilib.h)
La routine WmiFireEvent envoie un événement à WMI pour livraison aux consommateurs de données qui ont demandé une notification de l’événement.
Syntaxe
NTSTATUS WmiFireEvent(
[in] PDEVICE_OBJECT DeviceObject,
[in] LPCGUID Guid,
[in] ULONG InstanceIndex,
[in] ULONG EventDataSize,
[in, optional] PVOID EventData
);
Paramètres
[in] DeviceObject
Pointeur vers le DEVICE_OBJECT du pilote.
[in] Guid
Pointeur vers le GUID qui représente le bloc d’événements.
[in] InstanceIndex
Si le bloc d’événements a plusieurs instances, spécifie l’index du instance.
[in] EventDataSize
Spécifie le nombre d’octets de données dans EventData. Si aucune donnée n’est générée pour un événement, EventData doit être égal à zéro.
[in, optional] EventData
Pointeur vers une mémoire tampon non pagée allouée par le pilote contenant les données générées par le pilote pour l’événement. Si aucune donnée n’est générée pour un événement, EventData doit avoir la valeur NULL. WMI libère la mémoire tampon sans intervention supplémentaire du pilote.
Valeur retournée
WmiFireEvent propage le status retourné par IoWmiWriteEvent, ou retourne STATUS_INSUFFICIENT_RESOURCES s’il n’a pas pu allouer de mémoire pour l’événement.
Remarques
Un pilote appelle WmiFireEvent pour envoyer un événement à WMI afin de le remettre à tous les consommateurs de données qui ont demandé une notification de l’événement. Tous les pointeurs passés à WmiFireEvent doivent pointer vers la mémoire nonpagable, telle que le pool non paginé.
Le pilote envoie un événement uniquement s’il a été précédemment activé par la routine DpWmiFunctionControl du pilote, que WMI appelle pour traiter une demande de IRP_MN_ENABLE_EVENT .
Le pilote écrit toutes les données associées à l’événement dans la mémoire tampon dans EventData. WMI remplit une structure WNODE_SINGLE_INSTANCE avec les données et appelle IoWmiWriteEvent pour remettre l’événement.
Pour plus d’informations sur le suivi d’événements, consultez Suivi d’événements WMI.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 2000. |
Plateforme cible | Universal |
En-tête | wmilib.h (inclure Wmilib.h) |
Bibliothèque | Wmilib.lib |
IRQL | <= DISPATCH_LEVEL |