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 |
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
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
PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE
[PUNLOCK_ROUTINE](.. /ntifs/nc-ntifs-punlock_routine.md