Partager via


FltProcessFileLock, fonction (fltkernel.h)

Le FltProcessFileLock processus de routine et effectue une opération de verrouillage de fichier.

Syntaxe

FLT_PREOP_CALLBACK_STATUS FLTAPI FltProcessFileLock(
  [in]           PFILE_LOCK         FileLock,
  [in]           PFLT_CALLBACK_DATA CallbackData,
  [in, optional] PVOID              Context
);

Paramètres

[in] FileLock

Pointeur vers la structure FILE_LOCK du fichier. Cette structure doit avoir été initialisée par un appel précédent à FltAllocateFileLock ou FltInitializeFileLock.

[in] CallbackData

Pointeur vers la structure des données de rappel (FLT_CALLBACK_DATA) pour l’opération de IRP_MJ_LOCK_CONTROL.

[in, optional] Context

Pointeur de contexte à utiliser lors de la fin de l’opération. Ce pointeur de contexte est passé aux routines de rappel CompleteLockCallbackDataRoutine et UnlockRoutine routines de rappel que le pilote minifilter inscrit dans un appel précédent à FltAllocateFileLock. Ce paramètre est facultatif et peut être NULL.

Valeur de retour

FltProcessFileLock retourne l’une des valeurs suivantes.

Retourner le code Description
FLT_PREOP_COMPLETE Le Gestionnaire de filtres s’effectue avec leCallbackData , qui peut maintenant être terminé.
FLT_PREOP_DISALLOW_FASTIO Le CallbackData représente une opération d’E/S rapide, et un pilote minifilter dans la pile n’a pas autorisé l’utilisation rapide des E/S pour cette opération. Le Gestionnaire de filtres n’envoie pas l’opération aux pilotes minifilter sous celui qui n’a pas autorisé l’opération. Dans ce cas, le Gestionnaire de filtres appelle uniquement les routines de rappel de postopération (et CompleteLockCallbackDataRoutine rappels) des pilotes minifilter au-dessus du pilote minifilter qui a interdit l’opération d’E/S rapide.
FLT_PREOP_PENDING L’opération de verrouillage a été interrompue.

Remarques

FltProcessFileLock traite une opération de verrouillage de fichier (IRP_MJ_LOCK_CONTROL). L’opération de verrouillage peut être une opération d’E/S rapide ou basée sur IRP.

Pour les opérations de déverrouillage, le Gestionnaire de filtre appelle la routine de rappel UnlockRoutine que l’appelant a inscrite pour la structure FILE_LOCK dans un appel précédent à FltAllocateFileLock.

Une fois l’opération de verrouillage terminée, le Gestionnaire de filtre appelle la routine de rappel de fin CompleteLockCallbackDataRoutine (PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE) que l’appelant a inscrite pour la structure FILE_LOCK dans un appel précédent à FltAllocateFileLock.

Lorsque le paramètre CallbackData passé à FltProcessFileLock représente une opération d’E/S rapide, le rappel spécifié dans CompleteLockCallbackDataRoutine paramètre de la routine FltAllocateFileLock n’est pas appelé. Uniquement lorsque l’opération d’E/S dans CallbackData est un IRP, et CompleteLockCallbackDataRoutine n’est pas NULL, la routine de rappel est appelée.

Pour déterminer si le CallbackData représente une opération d’E/S rapide, utilisez la macro FLT_IS_FASTIO_OPERATION.

Pour allouer et initialiser une nouvelle structure de verrou de fichier, appelez FltAllocateFileLock.

Pour libérer une structure de FILE_LOCK initialisée, appelez FltFreeFileLock.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP avec SP2
serveur minimum pris en charge Windows Server 2003 avec SP1
plateforme cible Universel
d’en-tête fltkernel.h (include Fltkernel.h)
bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Voir aussi

FILE_LOCK

FLT_CALLBACK_DATA

FLT_IS_FASTIO_OPERATION

FltAllocateFileLock

FltCheckLockForReadAccess

FltCheckLockForWriteAccess

FltFreeFileLock

FltInitializeFileLock

FltUninitializeFileLock

FsRtlProcessFileLock

IRP_MJ_LOCK_CONTROL

PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE

[PUNLOCK_ROUTINE](.. /ntifs/nc-ntifs-punlock_routine.md