Función FltProcessFileLock (fltkernel.h)
El FltProcessFileLock procesos rutinarios y completa una operación de bloqueo de archivos.
Sintaxis
FLT_PREOP_CALLBACK_STATUS FLTAPI FltProcessFileLock(
[in] PFILE_LOCK FileLock,
[in] PFLT_CALLBACK_DATA CallbackData,
[in, optional] PVOID Context
);
Parámetros
[in] FileLock
Puntero a la estructura FILE_LOCK del archivo. Esta estructura debe haberse inicializado mediante una llamada anterior a FltAllocateFileLock o FltInitializeFileLock.
[in] CallbackData
Puntero a la estructura de datos de devolución de llamada (FLT_CALLBACK_DATA) para la operación de IRP_MJ_LOCK_CONTROL.
[in, optional] Context
Puntero de contexto que se va a usar al completar la operación. Este puntero de contexto se pasa al completeLockCallbackDataRoutine y unlockRoutine rutinas de devolución de llamada que el controlador de minifiltro registró en una llamada anterior a FltAllocateFileLock. Este parámetro es opcional y puede ser NULL.
Valor devuelto
fltProcessFileLock devuelve una de las siguientes opciones.
Código devuelto | Descripción |
---|---|
FLT_PREOP_COMPLETE | El Administrador de filtros se realiza con el CallbackData, que ahora se puede completar. |
FLT_PREOP_DISALLOW_FASTIO | El CallbackData representa una operación de E/S rápida y un controlador de minifiltro en la pila no ha permitido que se use la E/S rápida para esta operación. El Administrador de filtros no envía la operación a ningún controlador de minifiltro por debajo del que no permitió la operación. En este caso, el Administrador de filtros solo llama a las rutinas de devolución de llamada de postoperación (y CompleteLockCallbackDataRoutine devoluciones de llamada) de los controladores de minifiltro por encima del controlador de minifiltro que no permitió la operación rápida de E/S. |
FLT_PREOP_PENDING | La operación de bloqueo se ha pendido. |
Observaciones
FltProcessFileLock procesa una operación de bloqueo de archivos (IRP_MJ_LOCK_CONTROL). La operación de bloqueo puede ser una operación rápida basada en E/S o IRP.
Para las operaciones de desbloqueo, el Administrador de filtros llama a la rutina de devolución de llamada UnlockRou tine que el llamador registró para la estructura de FILE_LOCK en una llamada anterior a FltAllocateFileLock.
Cuando se completa la operación de bloqueo, el Administrador de filtros llama a la CompleteLockCallbackDataRoutine (PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE) rutina de devolución de llamada de finalización que el autor de la llamada registró para la estructura de FILE_LOCK en una llamada anterior a FltAllocateFileLock.
Cuando el parámetro CallbackData pasado a fltProcessFileLock representa una operación de E/S rápida, no se invoca la devolución de llamada especificada en CompleteLockCallbackDataRoutine parámetro de la rutina FltAllocateFileLock. Solo cuando la operación de E/S en CallbackData es un IRP y CompleteLockCallbackDataRoutine no es NULL, se llamará a la rutina de devolución de llamada.
Para determinar si el CallbackData representa una operación de E/S rápida, use la macro FLT_IS_FASTIO_OPERATION.
Para asignar e inicializar una nueva estructura de bloqueo de archivos, llame a FltAllocateFileLock.
Para liberar una estructura de FILE_LOCK inicializada, llame a FltFreeFileLock.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows XP con SP2 |
servidor mínimo admitido | Windows Server 2003 con SP1 |
de la plataforma de destino de |
Universal |
encabezado de |
fltkernel.h (incluya Fltkernel.h) |
biblioteca de |
FltMgr.lib |
DLL de |
Fltmgr.sys |
irQL | <= APC_LEVEL |
Consulte también
PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE
[PUNLOCK_ROUTINE](.. /ntifs/nc-ntifs-punlock_routine.md