Partager via


KsDisableEvent, fonction (ks.h)

La fonction KsDisableEvent désactive les événements demandés via IOCTL_KS_DISABLE_EVENT. Il répond à tous les événements précédemment activés via KsEnableEvent. Si la longueur de la mémoire tampon d’entrée est égale à zéro, il est supposé que tous les événements de la liste doivent être désactivés. Cette fonction ne peut être appelée qu’à PASSIVE_LEVEL.

Syntaxe

KSDDKAPI NTSTATUS KsDisableEvent(
  [in]      PIRP              Irp,
  [in, out] PLIST_ENTRY       EventsList,
  [in]      KSEVENTS_LOCKTYPE EventsFlags,
  [in]      PVOID             EventsLock
);

Paramètres

[in] Irp

Spécifie l’IRP passé à la fonction de suppression, qui utilise l’IRP pour obtenir des informations de contexte. L’objet de fichier associé à l’IRP est utilisé pour comparer l’objet de fichier spécifié à l’origine lors de l’activation de l’événement. Cela permet d’utiliser une liste d’événements unique pour plusieurs clients différenciés par des objets de fichier.

[in, out] EventsList

Pointe vers le début de la liste des éléments KSEVENT_ENTRY sur lesquels l’événement peut être trouvé. Si un client utilise plusieurs listes d’événements et ne sait pas sur quelle liste se trouve cet événement, le client peut appeler cette fonction plusieurs fois. Un événement introuvable retourne STATUS_UNSUCCESSFUL.

[in] EventsFlags

Spécifie un indicateur de KSEVENTS_LOCKTYPE spécifiant le type de verrou d’exclusion à utiliser pour accéder à la liste d’événements. Si aucun indicateur n’est défini, aucun verrou n’est pris.

[in] EventsLock

Utilisé pour synchroniser l’accès à un élément de la liste. Une fois l’élément accédé, il est marqué comme en cours de suppression afin que les demandes de suppression suivantes échouent. Le verrou est ensuite libéré après l’appel de la fonction de suppression, le cas échéant. La fonction de suppression doit se synchroniser avec la génération d’événements avant de supprimer l’élément de la liste.

Valeur retournée

La fonction KsDisableEvent retourne STATUS_SUCCESS en cas de réussite ou une erreur spécifique à l’événement activé. La fonction définit toujours le IO_STATUS_BLOCK. Champ d’informations du PIRP. Élément IoStatus dans l’IRP à zéro. Il ne définit pas le IO_STATUS_BLOCK. Le champ État ne termine pas non plus l’IRP.

Remarques

Il est important que le gestionnaire de suppression se synchronise avec la génération d’événements pour s’assurer que lorsque l’événement est supprimé de la liste, il n’est pas actuellement en cours de maintenance. L’accès à cette liste est supposé être contrôlé avec le verrou passé.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête ks.h (inclure Ks.h)
Bibliothèque Ks.lib

Voir aussi

KsEnableEvent