Partager via


WdfWmiInstanceFireEvent, fonction (wdfwmi.h)

[S’applique uniquement à KMDF]

La méthode WdfWmiInstanceFireEvent envoie un événement WMI aux clients WMI qui se sont inscrits pour recevoir une notification d’événement.

Syntaxe

NTSTATUS WdfWmiInstanceFireEvent(
  [in]           WDFWMIINSTANCE WmiInstance,
  [in, optional] ULONG          EventDataSize,
  [in, optional] PVOID          EventData
);

Paramètres

[in] WmiInstance

Handle d’un objet WMI instance que le pilote a obtenu à partir d’un appel précédent à WdfWmiInstanceCreate.

[in, optional] EventDataSize

Taille, en octets, des données d’événement vers laquelle Pointe EventData .

[in, optional] EventData

Pointeur vers les données d’événement ou NULL s’il n’y a pas de données d’événement.

Valeur retournée

WdfWmiInstanceFireEvent retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner l’une des valeurs suivantes :

Code de retour Description
STATUS_INSUFFICIENT_RESOURCES
La mémoire était insuffisante.
STATUS_UNSUCCESSFUL
La tentative de communication de l’infrastructure avec WMI a échoué.
STATUS_BUFFER_OVERFLOW
La mémoire tampon de données d’événement était trop grande.
 

Cette méthode peut également retourner d’autres valeurs NTSTATUS.

Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.

Remarques

Votre pilote doit appeler WdfWmiInstanceFireEvent uniquement si un client WMI s’est inscrit pour la notification d’événement. Le pilote peut déterminer s’il doit appeler WdfWmiInstanceFireEvent en fournissant une fonction de rappel EvtWmiProviderFunctionControl ou en appelant WdfWmiProviderIsEnabled.

Le pilote doit placer ses données spécifiques à l’événement, le cas échéant, dans la mémoire tampon vers laquelle pointe le paramètre EventData . L’infrastructure ajoute toutes les informations d’en-tête WMI nécessaires.

Pour plus d’informations sur la méthode WdfWmiInstanceFireEvent , consultez Prise en charge de WMI dans les pilotes Framework-Based.

Exemples

L’exemple de code suivant envoie un événement WMI aux clients WMI.

MY_WMI_EVENT_DATA eventData;
NTSTATUS  status;

status = WdfWmiInstanceFireEvent(
                                 WmiInstance,
                                 sizeof(eventData),
                                 (PVOID)&eventData
                                 );

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
En-tête wdfwmi.h (inclure Wdf.h)
Bibliothèque Wdf01000.sys (consultez Gestion de version de la bibliothèque d’infrastructure.)
IRQL <= APC_LEVEL
Règles de conformité DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Voir aussi

EvtWmiProviderFunctionControl

WdfWmiInstanceCreate

WdfWmiProviderIsEnabled