Partager via


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.

Voir aussi

FLT_CALLBACK_DATA

FltCbdqInitialize

FltCompletePendedPostOperation

FltQueueDeferredIoWorkItem

PFLT_PRE_OPERATION_CALLBACK