MiAbortCombineScan
VOID __fastcall MiAbortCombineScan(INT64 a1){
__int64 v2;
_QWORD *v3;
_QWORD *i;
_QWORD *v5;
if( (unsigned int)MiPageCombiningActive(0i64) )
{
v2 = *(_QWORD *)(qword_140C4E388 + 8 * ((*(_QWORD *)(a1 + 40) >> 39) & 0x3FFi64));
ExAcquireSpinLockSharedAtDpcLevel(&dword_140C4E280);
v3 = (_QWORD *)(v2 + 6456);
for( i = (_QWORD *)*v3; i != v3; i = (_QWORD *)*i )
{
if( i[6] == a1 )
{
v5 = (_QWORD *)i[7];
if( (*(_BYTE *)v5 & 1) != 0 )
{
*v5 = ZeroPte;
KeFlushSingleTb((__int64)(((_QWORD)v5 << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16, 0i64, 1i64);
}
}
}
ExReleaseSpinLockSharedFromDpcLevel(&dword_140C4E280);
}
}Referenced by:
MiAllocateSlabEntry
MiChangePageAttribute
MiChangePageAttributeBatch
MiChangePageAttributeContiguous
MiCopyPage
MiInitializeDynamicPfns
MiInitializeMdlPfn
MiUpdateSlabPagePlaceholderState