MiFlushCacheForAttributeChange
VOID __fastcall MiFlushCacheForAttributeChange(UINT64 PageFrameIndex, INT64 a2, INT64 a3){
int v3;
INT64 v4;
unsigned int v6;
void *v7;
void *v8;
v3 = a3;
v4 = a2;
if( a2 )
{
v6 = -805306366;
if( (_DWORD)a3 != 2 )
v6 = -1073741824;
do
{
LODWORD(v7) = MiMapPageInHyperSpaceWorker(PageFrameIndex, 0i64, v6);
v8 = v7;
KeInvalidateRangeAllCachesNoIpi(v7, 0x1000ui64);
MiUnmapPageInHyperSpaceWorker(v8, 0x11u, 0x80000000ui64);
++PageFrameIndex;
--v4;
}
while( v4 );
}
if( v3 == 3 )
MiFlushHyperSpace();
}Referenced by:
MiChangePageAttribute
MiChangePageAttributeBatch
MiChangePageAttributeContiguous
MiFlushCacheRange
MiInitializeCacheFlushing