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.