FsRtlCheckLockForReadAccess
UINT8 __stdcall FsRtlCheckLockForReadAccess(_FILE_LOCK *FileLock, _IRP *Irp){
_QWORD *LockInformation;
union _LARGE_INTEGER *v4;
union _LARGE_INTEGER v5;
ULONG LowPart;
_FILE_OBJECT *FileObject;
_EPROCESS *ProcessId;
UINT8 result;
union _LARGE_INTEGER Length;
union _LARGE_INTEGER StartingByte;
LockInformation = FileLock->LockInformation;
if( !LockInformation )
return 1;
if( !LockInformation[5] )
return 1;
v4 = (union _LARGE_INTEGER *)*((_QWORD *)Irp + 23);
v5.QuadPart = v4[1].LowPart;
StartingByte = v4[3];
Length = v5;
if( StartingByte.QuadPart + v5.QuadPart <= *LockInformation )
return 1;
LowPart = v4[2].LowPart;
FileObject = (_FILE_OBJECT *)v4[6].QuadPart;
ProcessId = IoGetRequestorProcess(Irp);
FsRtlFastCheckLockForRead(FileLock, &StartingByte, &Length, LowPart, FileObject, ProcessId);
return result;
}Referenced by:
No references.