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 |