MiAbortCombineScan
VOID __stdcall MiAbortCombineScan(_MMPFN *Pfn1){
__int64 v2;
__int64 ***v3;
__int64 **i;
unsigned __int64 *v5;
unsigned __int64 Long;
int v7;
if( MiPageCombiningActive(0i64) )
{
v2 = *(_QWORD *)(*(&stru_140C4DB30 + 267) + 8 * (((unsigned __int64)Pfn1->u4._bf_0 >> 39) & 0x3FF));
ExAcquireSpinLockSharedAtDpcLevel((PEX_SPIN_LOCK)&stru_140C4DB30 + 468);
v3 = (__int64 ***)(v2 + 6456);
for( i = *v3; i != (__int64 **)v3; i = (__int64 **)*i )
{
if( i[6] == (__int64 *)Pfn1 )
{
v5 = (unsigned __int64 *)i[7];
if( (*(_BYTE *)v5 & 1) != 0 )
{
Long = ZeroPte.u.Long;
LOBYTE(v7) = MiPteInShadowRange((UINT64)i[7]);
if( v7 && (KeGetCurrentThread()->ApcState.Process->Flags3 & 0x1000) != 0 && (ZeroPte.u.Long & 1) != 0 )
Long = ZeroPte.u.Long | 0x8000000000000000ui64;
*v5 = Long;
KeFlushSingleTb((__int64)(((_QWORD)v5 << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16, FlushKernel, 1i64);
}
}
}
ExReleaseSpinLockSharedFromDpcLevel((PEX_SPIN_LOCK)&stru_140C4DB30 + 468);
}
}Referenced by:
MiAllocateSlabEntry
MiChangePageAttribute
MiChangePageAttributeBatch
MiChangePageAttributeContiguous
MiCompleteSecureProcessFault
MiCopyPage
MiInitializeDynamicPfns
MiInitializeMdlPfn
MiUpdateSlabPagePlaceholderState