Función FsRtlInitializeFileLock (ntifs.h)
La rutina FsRtlInitializeFileLock inicializa una estructura FILE_LOCK.
Sintaxis
void FsRtlInitializeFileLock(
[in] PFILE_LOCK FileLock,
[in, optional] PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine,
[in, optional] PUNLOCK_ROUTINE UnlockRoutine
);
Parámetros
[in] FileLock
Puntero a una estructura de FILE_LOCK sin inicializar.
[in, optional] CompleteLockIrpRoutine
Puntero a una rutina de devolución de llamada con tipo PCOMPLETE_LOCK_IRP_ROUTINEque se llamará cuando se complete una solicitud de IRP_MJ_LOCK_CONTROL. Este parámetro es opcional y puede ser NULL.
[in, optional] UnlockRoutine
Puntero a una rutina de devolución de llamada con tipo PUNLOCK_ROUTINEque se llamará cuando se desbloquea el intervalo de bytes. Este parámetro es opcional y puede ser NULL.
Valor devuelto
Ninguno
Observaciones
FsRtlInitializeFileLock inicializa una estructura de FILE_LOCK sin inicializar.
Se trata de un error de programación para llamar a FsRtlInitializeFileLock para una estructura de FILE_LOCK que ya se ha inicializado mediante FsRtlInitializeFileLock o FltAllocateFileLock, a menos que una llamada posterior a FsRtlUninitializeFileLock.
Una vez inicializado, la estructura de FILE_LOCK se puede usar para bloquear un intervalo de bytes en un archivo llamando a FsRtlProcessFileLock oFsRtlFastLock. FsRtlProcessFileLock procesa IRP de bloqueo. FsRtlFastLock realiza bloqueos que no son IRP.
Cuando la estructura de FILE_LOCK ya no es necesaria, se puede no inicializar llamando a FsRtlUninitializeFileLock. A continuación, se puede inicializar la estructura de FILE_LOCK sin inicializar para su reutilización llamando a FsRtlInitializeFileLock.
Los minifiltros deben llamar a FltInitializeFileLock en lugar de FsRtlInitializeFileLock.