FsRtlCheckLockForWriteAccess
VOID __stdcall FsRtlCheckLockForWriteAccess(_FILE_LOCK *FileLock, _IRP *Irp){
_QWORD *LockInformation;
union _LARGE_INTEGER *v4;
union _LARGE_INTEGER v5;
ULONG LowPart;
VOID *FileObject;
_EPROCESS *ProcessId;
union _LARGE_INTEGER Length;
union _LARGE_INTEGER StartingByte;
LockInformation = FileLock->LockInformation;
if( LockInformation && (LockInformation[5] || LockInformation[4]) )
{
v4 = (union _LARGE_INTEGER *)*((_QWORD *)Irp + 23);
v5.QuadPart = v4[1].LowPart;
StartingByte = v4[3];
Length = v5;
if( StartingByte.QuadPart + v5.QuadPart > *LockInformation )
{
LowPart = v4[2].LowPart;
FileObject = (VOID *)v4[6].QuadPart;
ProcessId = IoGetRequestorProcess(Irp);
FsRtlFastCheckLockForWrite(FileLock, &StartingByte, &Length, LowPart, FileObject, ProcessId);
}
}
}Referenced by:
No references.