FsRtlInitializeFileLock routine

The FsRtlInitializeFileLock routine initializes a FILE_LOCK structure.

Syntax


VOID FsRtlInitializeFileLock(
  _In_     PFILE_LOCK                 FileLock,
  _In_opt_ PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine,
  _In_opt_ PUNLOCK_ROUTINE            UnlockRoutine
);

Parameters

FileLock [in]

Pointer to an uninitialized FILE_LOCK structure.

CompleteLockIrpRoutine [in, optional]

Pointer to a PCOMPLETE_LOCK_IRP_ROUTINE-typed callback routine to be called when an IRP_MJ_LOCK_CONTROL request is completed. This parameter is optional and can be NULL.

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.

Return value

None

Remarks

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.

Requirements

Target platform

Universal

Header

Ntifs.h (include Ntifs.h)

Library

NtosKrnl.lib

DLL

NtosKrnl.exe

IRQL

<= APC_LEVEL

See also

FltInitializeFileLock
FsRtlAllocateFileLock
FsRtlAreThereCurrentFileLocks
FsRtlFastLock
FsRtlProcessFileLock
FsRtlUninitializeFileLock
IoCompleteRequest
IRP_MJ_LOCK_CONTROL
PCOMPLETE_LOCK_IRP_ROUTINE
PUNLOCK_ROUTINE

 

 

Send comments about this topic to Microsoft

Show: