The NtLockFile routine requests a byte-range lock for the specified file.
__kernel_entry NTSYSCALLAPI NTSTATUS NtLockFile( HANDLE FileHandle, HANDLE Event, PIO_APC_ROUTINE ApcRoutine, PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, PLARGE_INTEGER ByteOffset, PLARGE_INTEGER Length, ULONG Key, BOOLEAN FailImmediately, BOOLEAN ExclusiveLock );
A handle for the file on which a byte-range lock is requested.
A handle to a caller-created event. If not NULL, the caller is placed into a wait state until the operation succeeds, at which time the event is set into the Signaled state.
A pointer to a caller-supplied APC routine that is executed after the operation completes. Can be NULL.
A pointer to a caller-specified context for the APC routine. This value is passed to the APC routine when it is executed. Can be NULL.
A pointer to an IO_STATUS_BLOCK structure that contains the final status.
A pointer to a variable that specifies the starting byte offset of the range to lock.
A pointer to a variable that specifies the length in bytes of the range to lock.
A caller-assigned value used to describe groups of related locks. This value should be set to zero.
If TRUE, immediately return if the file cannot be locked. If FALSE, wait for the lock request to be granted.
If TRUE, byte-range lock is exclusive; otherwise, shared lock.
The NtLockFile routine returns STATUS_SUCCESS or an appropriate error NTSTATUS value. Possible NTSTATUS values include the following:
||Insufficient resources exist to grant the byte-range lock for the specified file.|
||The byte-range lock was not granted for the specified file.|
Callers of NtLockFile must be running at IRQL = PASSIVE_LEVEL and with special kernel APCs enabled.
|Windows version||Available starting with Windows 7.|
|Header||ntifs.h (include Ntifs.h, FltKernel.h)|
|IRQL||PASSIVE_LEVEL (see Remarks section)|
|DDI compliance rules||PowerIrpDDis, HwStorPortProhibitedDDIs|