MmInvalidateDumpAddresses
VOID __stdcall MmInvalidateDumpAddresses(VOID *Va, UINT64 NumberOfPages){
char *v3;
unsigned int v4;
_MMPTE *PteAddress;
__int64 v6;
unsigned __int64 Long;
int v8;
unsigned __int64 *v9;
__int64 v10;
unsigned __int64 v11;
int v12;
v3 = (char *)Va;
v4 = 0;
PteAddress = MiGetPteAddress(Va);
if( v6 )
{
do
{
Long = ZeroPte.u.Long;
LOBYTE(v8) = MiPteInShadowRange((UINT64)PteAddress);
if( v8 && (KeGetCurrentThread()->ApcState.Process->Flags3 & 0x1000) != 0 && (ZeroPte.u.Long & 1) != 0 )
Long = ZeroPte.u.Long | 0x8000000000000000ui64;
PteAddress->u.Long = Long;
++v4;
++PteAddress;
}
while( v4 < NumberOfPages );
}
for( ; NumberOfPages; --NumberOfPages )
{
KeFlushSingleCurrentTb(v3);
v3 += 4096;
}
v9 = (unsigned __int64 *)*(&stru_140C4DB30 + 296);
v10 = 32i64;
do
{
v11 = ZeroPte.u.Long;
LOBYTE(v12) = MiPteInShadowRange((UINT64)v9);
if( v12 && (KeGetCurrentThread()->ApcState.Process->Flags3 & 0x1000) != 0 && (ZeroPte.u.Long & 1) != 0 )
v11 = ZeroPte.u.Long | 0x8000000000000000ui64;
*v9++ = v11;
--v10;
}
while( v10 );
}Referenced by:
PopInvokeSystemStateHandler