MiDeleteExtentPfns
VOID __stdcall MiDeleteExtentPfns(VOID *Context){
INT64 v1;
UINT8 *v2;
_BYTE *v4;
__int64 v5;
_KLOCK_QUEUE_HANDLE LockHandle;
memset(&LockHandle, 0, sizeof(LockHandle));
if( Context )
{
v4 = KeAbPreAcquire(&qword_140C4C850, 0i64, 0i64);
if( v4 )
v4[26] |= 1u;
}
while( 1 )
{
MiPurgeBadFileOnlyPages((INT64)Context, v1, v2);
while( qword_140C4C828 )
MiRemovePhysicalMemory(0i64, 0i64, 0x32ui64);
KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&stru_140C50B28 + 503, &LockHandle);
v5 = qword_140C4C828;
if( !Context )
{
if( qword_140C4C828 || byte_140C4C871 == 1 )
{
MiWaitForExtentDeletions(&LockHandle);
return;
}
goto LABEL_12;
}
if( !qword_140C4C828 )
break;
LABEL_12:
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
__writecr8(LockHandle.OldIrql);
if( !v5 )
goto LABEL_15;
}
MiWakeExtentDeletionWaiters(&LockHandle);
LABEL_15:
if( Context )
KeAbPostRelease(&qword_140C4C850);
}Referenced by:
MiAddPhysicalMemory