Fonction FltCompletePendedPreOperation (fltkernel.h)
FltCompletePendedPreOperation reprend le traitement pour une opération d’E/S qui a été pendu dans la routine de rappel de préopération d’un pilote minifiltre (PFLT_PRE_OPERATION_CALLBACK).
Syntaxe
VOID FLTAPI FltCompletePendedPreOperation(
PFLT_CALLBACK_DATA CallbackData,
[in] FLT_PREOP_CALLBACK_STATUS CallbackStatus,
[in, optional] PVOID Context
);
Paramètres
CallbackData
Pointeur vers la structure de données de rappel (FLT_CALLBACK_DATA) pour l’opération d’E/S. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.
[in] CallbackStatus
Valeur status que le pilote de minifiltre retourne pour cette opération d’E/S. Ne peut pas être FLT_PREOP_PENDING, FLT_PREOP_SYNCHRONIZE ou FLT_PREOP_DISALLOW_FASTIO. Doit être l’une des valeurs FLT_PREOP_CALLBACK_STATUS suivantes. Pour plus d’informations sur l’effet de ces valeurs, consultez la section Remarques de l’entrée de référence pour PFLT_PRE_OPERATION_CALLBACK.
Valeur | Signification |
---|---|
FLT_PREOP_COMPLETE | Le pilote de minifiltre termine l’opération d’E/S. Le Gestionnaire de filtres n’envoie pas l’opération d’E/S aux pilotes de minifiltre situés sous l’appelant ou au système de fichiers. Le Gestionnaire de filtres appelle uniquement les routines de rappel post-opération (PFLT_POST_OPERATION_CALLBACK) des pilotes de minifiltre au-dessus de l’appelant. |
FLT_PREOP_SUCCESS_NO_CALLBACK | Le pilote de minifiltre renvoie le contrôle de l’opération d’E/S au Gestionnaire de filtres. Le Gestionnaire de filtres n’appelle pas le rappel de post-opération correspondant, le cas échéant, pendant la fin des E/S. |
FLT_PREOP_SUCCESS_WITH_CALLBACK | Le pilote de minifiltre renvoie le contrôle de l’opération d’E/S au Gestionnaire de filtres. Le Gestionnaire de filtres appelle le rappel de post-opération correspondant lors de la fin des E/S. |
[in, optional] Context
Si FLT_PREOP_SUCCESS_WITH_CALLBACK est spécifié pour CallbackStatus, ce paramètre est un pointeur de contexte facultatif à passer à la routine de rappel post-opération correspondante. Si FLT_PREOP_COMPLETE ou FLT_PREOP_SUCCESS_NO_CALLBACK est spécifié pour CallbackStatus, ce paramètre doit avoir la valeur NULL.
Valeur de retour
None
Remarques
Quand la routine de rappel de préopération d’un pilote minifiltre (PFLT_PRE_OPERATION_CALLBACK) publie une opération d’E/S dans une file d’attente de travail et retourne FLT_PREOP_PENDING, le Gestionnaire de filtres arrête le traitement de l’opération. Lorsque l’opération est finalement supprimée et traitée, le pilote de minifiltre doit appeler FltCompletePendedPreOperation pour renvoyer l’opération au Gestionnaire de filtres, qui reprend ensuite le traitement comme indiqué par le CallbackStatus spécifié par le pilote de minifiltre.
Si le paramètre CallbackStatus est FLT_PREOP_COMPLETE, FltCompletePendedPreOperation peut être appelé à l’adresse IRQL <= DISPATCH_LEVEL. Sinon, les appelants de FltCompletePendedPreOperation doivent s’exécuter à IRQL <= APC_LEVEL.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | fltkernel.h (inclure Fltkernel.h) |
Bibliothèque | FltMgr.lib |
IRQL | Consultez la section Notes. |