FsRtlCheckLockForOplockRequest

UINT8 __stdcall FsRtlCheckLockForOplockRequest(FILE_LOCK *FileLock, LARGE_INTEGER *AllocationSize){
  unsigned __int64 *LockInformation; 
  UINT8 v4; 
  unsigned __int64 v5; 
  UINT64 *v6; 
  unsigned __int8 v7; 
  unsigned __int64 v8; 
  LockInformation = (unsigned __int64 *)FileLock->LockInformation;
  if( !LockInformation || !LockInformation[4] && !LockInformation[5] || !AllocationSize->QuadPart )
    return 1;
  if( FileLock->LockRequestsInProgress )
    return 0;
  v4 = 1;
  v5 = AllocationSize->QuadPart - 1;
  KeAcquireSpinLockRaiseToDpc(LockInformation + 3, (UINT64)AllocationSize);
  v6 = LockInformation + 3;
  v8 = v7;
  if( v5 >= *LockInformation )
  {
    KxReleaseSpinLock(v6);
    v4 = 0;
  }
  else
  {
    KxReleaseSpinLock(v6);
  }
  __writecr8(v8);
  return v4;
}

Referenced by:

No references.