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.