FsRtlFastUnlockSingle
NTSTATUS __stdcall FsRtlFastUnlockSingle(
PFILE_LOCK FileLock,
PFILE_OBJECT FileObject,
_LARGE_INTEGER *FileOffset,
PLARGE_INTEGER Length,
PEPROCESS ProcessId,
UINT64 Key,
VOID *Context,
BOOL AlreadySynchronized){
_LOCK_INFO *LockInformation;
NTSTATUS result;
UINT64 v14;
UINT64 v15;
LockInformation = (_LOCK_INFO *)FileLock->LockInformation;
if( !LockInformation )
return -1073741698;
if( (unsigned __int64)(Length->QuadPart + FileOffset->QuadPart - 1) < FileOffset->QuadPart && Length->QuadPart )
return -1073741407;
LODWORD(v14) = Key;
if( !FsRtlFastUnlockSingleExclusive(
LockInformation,
(_RTL_SPLAY_LINKS *)FileObject,
FileOffset,
(_RTL_SPLAY_LINKS **)Length,
(_RTL_SPLAY_LINKS *)ProcessId,
v14,
Context,
0,
1u) )
return 0;
LODWORD(v15) = Key;
FsRtlFastUnlockSingleShared(
(_LOCK_INFO *)FileLock->LockInformation,
FileObject,
FileOffset,
Length,
ProcessId,
v15,
Context,
0,
1u);
return result;
}Referenced by:
FsRtlProcessFileLock