Fonction FltSetCancelCompletion (fltkernel.h)
Un pilote de minifiltre 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 de 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 filtres 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 retournée
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 qui doit être publiée 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 qui doit être publiée dans une file d’attente de données de rappel à l’aide des routines FltCbdqXxx .
Le Gestionnaire de filtres appelle la routine CanceledCallback sans tenir le verrou de rotation d’annulation du système ou effectuer toute 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.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | fltkernel.h (inclure Fltkernel.h) |
Bibliothèque | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= DISPATCH_LEVEL |