IRP_MN_DISABLE_EVENTS

Tout pilote WMI qui inscrit un ou plusieurs blocs d’événements doit gérer cette IRP. Un pilote peut gérer les IRP WMI en appelant WmiSystemControl ou en gérant l’IRP lui-même, comme décrit dans Gestion des demandes WMI.

Si un pilote appelle WmiSystemControl pour gérer une demande de IRP_MN_DISABLE_EVENTS , WMI appelle à son tour la routine DpWmiFunctionControl du pilote.

Code majeur

IRP_MJ_SYSTEM_CONTROL

Date d’envoi

WMI envoie cette IRP pour informer le pilote qu’un consommateur de données n’a demandé aucune autre notification d’un événement.

WMI envoie cette IRP à IRQL = PASSIVE_LEVEL dans un contexte de thread arbitraire.

Paramètres d’entrée

Parameters.WMI.ProviderId pointe vers l’objet de périphérique du pilote qui doit répondre à la demande. Ce pointeur se trouve à l’emplacement de la pile d’E/S du pilote dans l’IRP.

Parameters.WMI.DataPath pointe vers un GUID qui identifie le bloc d’événements à désactiver.

Paramètres de sortie

Aucun.

Bloc d’état E/S

Si le pilote gère l’IRP en appelant WmiSystemControl, WMI définit Irp-IoStatus.Status> et Irp-IoStatus.Information> dans le bloc d’E/S status.

Dans le cas contraire, le pilote définit Irp-IoStatus.Status> sur STATUS_SUCCESS ou sur un status d’erreur approprié, par exemple :

STATUS_WMI_GUID_NOT_FOUND

STATUS_INVALID_DEVICE_REQUEST

En cas de réussite, un pilote définit Irp-IoStatus.Information> sur zéro.

Opération

Un pilote peut gérer les IRP WMI en appelant WmiSystemControl ou en gérant l’IRP lui-même, comme décrit dans Gestion des demandes WMI.

Si un pilote gère les IIP WMI en appelant WmiSystemControl, cette routine appelle la routine DpWmiFunctionControl du pilote ou retourne STATUS_SUCCESS si le pilote ne définit pas la routine.

Si un pilote gère lui-même une requête IRP_MN_DISABLE_EVENTS , il ne doit le faire que si Parameters.WMI.ProviderId pointe vers le même objet d’appareil que le pointeur que le pilote a passé à IoWMIRegistrationControl. Dans le cas contraire, le pilote doit transférer la demande au pilote inférieur suivant.

Avant de gérer une requête, le pilote doit déterminer si Parameters.WMI.DataPath pointe vers un GUID pris en charge par le pilote. Si ce n’est pas le cas, le pilote doit échouer l’IRP et retourner STATUS_WMI_GUID_NOT_FOUND.

Si le pilote prend en charge le bloc d’événements, il désactive l’événement pour toutes les instances de ce bloc.

Il n’est pas nécessaire pour le pilote de case activée si les événements sont déjà désactivés pour le bloc d’événements, car WMI envoie une seule demande de désactivation pour ce bloc d’événements lorsque le dernier consommateur de données désactive l’événement. WMI n’envoie pas d’autre demande de désactivation sans demande d’intervention à activer.

Pour plus d’informations sur la définition de blocs d’événements, consultez Conception de blocs de données et d’événements WMI.

Spécifications

En-tête

Wdm.h (inclure Wdm.h, Ntddk.h ou Ntifs.h)

Voir aussi

DpWmiFunctionControl

IoWMIRegistrationControl

IRP_MN_ENABLE_EVENTS

WMILIB_CONTEXT

WmiSystemControl