Partager via


KsDisableEvent, fonction (ks.h)

La fonction KsDisableEvent désactive les événements demandés via IOCTL_KS_DISABLE_EVENT. Elle 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 effectuer une comparaison avec l’objet de fichier spécifié à l’origine lors de l’activation de l’événement. Cela permet à une liste d’événements unique d’être utilisée pour plusieurs clients différenciés par des objets de fichier.

[in, out] EventsList

Pointe vers la tête 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 quelle liste cet événement se trouve, le client peut appeler cette fonction plusieurs fois. Un événement introuvable retourne STATUS_UNSUCCESSFUL.

[in] EventsFlags

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

[in] EventsLock

Permet de synchroniser l’accès à un élément de la liste. Une fois l’élément accédé, il est marqué comme étant supprimé 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 réellement l’élément de la liste.

Valeur de retour

La fonction KsDisableEvent retourne STATUS_SUCCESS en cas de réussite, ou une erreur spécifique à l’événement en cours d’activation. La fonction définit toujours la IO_STATUS_BLOCK. Champ d’informations du PIRP. Élément IoStatus au sein de l’IRP à zéro. Elle ne définit pas le IO_STATUS_BLOCK. Champ d’état, pas plus qu’il ne termine 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 service. L’accès à cette liste est supposé être contrôlé avec le verrou passé.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête ks.h (include Ks.h)
bibliothèque Ks.lib

Voir aussi

KsEnableEvent