Partager via


FltCompletePendedPreOperation, fonction (fltkernel.h)

FltCompletePendedPreOperation reprend le traitement d’une opération d’E/S qui a été pendée dans la routine de rappel de préopération du pilote minifilter (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 des données de rappel (FLT_CALLBACK_DATA) pour l’opération d’E/S. Ce paramètre est obligatoire et ne peut pas être NULL.

[in] CallbackStatus

Valeur d’état retournée par le pilote minifilter 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 de 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 minifilter termine l’opération d’E/S. Le Gestionnaire de filtres n’envoie pas l’opération d’E/S aux pilotes minifilter sous l’appelant ou au système de fichiers. Le Gestionnaire de filtres appelle uniquement les routines de rappel de postopération (PFLT_POST_OPERATION_CALLBACK) des pilotes minifilter au-dessus de l’appelant.
FLT_PREOP_SUCCESS_NO_CALLBACK Le pilote minifilter retourne le contrôle de l’opération d’E/S au Gestionnaire de filtres. Le Gestionnaire de filtres n’appelle pas le rappel de postopération correspondant, s’il en existe un, pendant l’achèvement des E/S.
FLT_PREOP_SUCCESS_WITH_CALLBACK Le pilote minifilter retourne le contrôle de l’opération d’E/S au Gestionnaire de filtres. Le Gestionnaire de filtre appelle le rappel de postopération correspondant pendant l’achèvement 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 de post-opération correspondante. Si FLT_PREOP_COMPLETE ou FLT_PREOP_SUCCESS_NO_CALLBACK est spécifié pour callbackStatus, ce paramètre doit être NULL.

Valeur de retour

Aucun

Remarques

Lorsqu’un rappel de préopération d’un pilote minifilter (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 filtre arrête le traitement de l’opération. Lorsque l’opération est finalement mise en file d’attente et traitée, le pilote minifilter 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 minifilter.

Si le paramètre CallbackStatus est FLT_PREOP_COMPLETE, fltCompletePendedPreOperation peut être appelé au <IRQL = DISPATCH_LEVEL. Dans le cas contraire, les appelants de FltCompletePendedPreOperation doivent s’exécuter sur IRQL <= APC_LEVEL.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête fltkernel.h (include Fltkernel.h)
bibliothèque FltMgr.lib
IRQL Voir la section Remarques.

Voir aussi

FLT_CALLBACK_DATA

FltCbdqInitialize

FltCompletePendedPostOperation

FltQueueDeferredIoWorkItem

PFLT_PRE_OPERATION_CALLBACK