FltSetCancelCompletion, fonction (fltkernel.h)

Un pilote minifilter appelle FltSetCancelCompletion pour spécifier une routine d’annulation à appeler si une opération d’E/S donnée est annulée.

Syntaxe

NTSTATUS FLTAPI FltSetCancelCompletion(
  [in] PFLT_CALLBACK_DATA              CallbackData,
  [in] PFLT_COMPLETE_CANCELED_CALLBACK CanceledCallback
);

Paramètres

[in] CallbackData

Pointeur vers la structure des données de rappel (FLT_CALLBACK_DATA) pour l’opération d’E/S. L’opération doit être une opération d’E/S basée sur IRP et ne doit pas être une opération d’E/S de pagination. Pour déterminer si une structure de données de rappel donnée représente une opération d’E/S basée sur IRP, utilisez la macro FLT_IS_IRP_OPERATION. Ce paramètre est obligatoire et ne peut pas être NULL.

[in] CanceledCallback

Pointeur vers une routine d’annulation fournie par l’appelant. Le Gestionnaire de filtre appelle cette routine si l’opération d’E/S représentée par CallbackData est annulée.

Cette routine est déclarée comme suit :

typedef VOID
(*PFLT_COMPLETE_CANCELED_CALLBACK) (
      IN PFLT_CALLBACK_DATA CallbackData
      );

CallbackData

Pointeur vers la structure FLT_CALLBACK_DATA pour l’opération d’E/S.

Valeur de retour

FltSetCancelCompletion retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée.

Remarques

FltSetCancelCompletion spécifie une routine d’annulation pour une opération d’E/S basée sur IRP à publier dans une file d’attente de travail.

Les pilotes minifilter appellent généralement FltSetCancelCompletion pour une opération d’E/S immédiatement avant d’appeler FltQueueDeferredIoWorkItem pour publier l’opération dans une file d’attente de travail.

N’appelez pas FltSetCancelCompletion pour toute opération d’E/S à publier dans une file d’attente de données de rappel sans échec à l’aide des routines FltCbdqXxx.

Le Gestionnaire de filtre appelle la routine CanceledCallback sans conserver le verrou de rotation de l’annulation du système ou effectuer une autre synchronisation. Toute synchronisation requise doit être fournie par le pilote minifilter lui-même.

Pour annuler une opération d’E/S, appelez FltCancelIo.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête fltkernel.h (include Fltkernel.h)
bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

Voir aussi

FLT_CALLBACK_DATA

FLT_IS_IRP_OPERATION

FltCancelIo

FltClearCancelCompletion

FltQueueDeferredIoWorkItem