CcComputeNextScanTime
VOID __stdcall CcComputeNextScanTime(LARGE_INTEGER *OldestScanTimeForMetadata, LARGE_INTEGER *NextScanDelay){
_QWORD *v2;
_QWORD *v3;
volatile signed __int64 TickCountQuad;
unsigned __int64 v5;
LONGLONG QuadPart;
ULONG v7;
*v2 = 0i64;
v3 = v2;
if( OldestScanTimeForMetadata[120].LowPart < OldestScanTimeForMetadata[25].LowPart )
{
TickCountQuad = KUSER_SHARED_DATA.TickCountQuad;
v5 = 0x9896800ui64 / KeMaximumIncrement;
QuadPart = NextScanDelay->QuadPart;
v7 = OldestScanTimeForMetadata[17].LowPart + 1;
OldestScanTimeForMetadata[17].LowPart = v7;
if( QuadPart != 0x7FFFFFFFFFFFFFFFi64 && (__int64)(QuadPart + v5) > TickCountQuad )
{
OldestScanTimeForMetadata[17].LowPart = 0;
*v3 = v5 + QuadPart - TickCountQuad;
v7 = 0;
}
if( v7 >= CcMaxWorklessLazywriteScans )
{
OldestScanTimeForMetadata[17].LowPart = 0;
*v3 = 0x7FFFFFFFFFFFFFFFi64;
}
}
}Referenced by:
CcLazyWriteScan