The FsRtlInitializeFileLock routine initializes a FILE_LOCK structure.
VOID FsRtlInitializeFileLock( _In_ PFILE_LOCK FileLock, _In_opt_ PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine, _In_opt_ PUNLOCK_ROUTINE UnlockRoutine );
- FileLock [in]
Pointer to an uninitialized FILE_LOCK structure.
- CompleteLockIrpRoutine [in, optional]
- UnlockRoutine [in, optional]
Pointer to a PUNLOCK_ROUTINE-typed callback routine to be called when the byte range is unlocked. This parameter is optional and can be NULL.
FsRtlInitializeFileLock initializes an uninitialized FILE_LOCK structure.
It is a programming error to call FsRtlInitializeFileLock for a FILE_LOCK structure that has already been initialized by FsRtlInitializeFileLock or FsRtlAllocateFileLock, unless the structure has been uninitialized by a subsequent call to FsRtlUninitializeFileLock.
Once initialized, the FILE_LOCK structure can be used to lock a byte range in a file by calling FsRtlProcessFileLock or FsRtlFastLock. FsRtlProcessFileLock processes lock IRPs. FsRtlFastLock performs non-IRP locking.
When the FILE_LOCK structure is no longer needed, it can be uninitialized by calling FsRtlUninitializeFileLock. The uninitialized FILE_LOCK structure can then be initialized for reuse by calling FsRtlInitializeFileLock.
Minifilters must call FltInitializeFileLock instead of FsRtlInitializeFileLock.
Build date: 1/29/2014