MiGetSystemCacheReverseMap
NTSTATUS __stdcall MiGetSystemCacheReverseMap(UINT64 a1){
UINT64 v2;
union {unsigned __int64 Long;volatile unsigned __int64 VolatileLong;_MMPTE_HARDWARE Hard;_MMPTE_PROTOTYPE Proto;_MMPTE_SOFTWARE Soft;_MMPTE_TIMESTAMP TimeStamp;_MMPTE_TRANSITION Trans;_MMPTE_SUBSECTION Subsect;_MMPTE_LIST List;} v3;
UINT64 v5;
v2 = *(unsigned __int64 *)((char *)&MmGetPdeBase()->u.Long + ((a1 >> 18) & 0x3FFFFFF8));
v5 = v2;
MiPteInShadowRange((UINT64)&v5);
v3.Long = (unsigned __int64)MmGetPfnDb()[(v2 >> 12) & 0xFFFFFFFFFi64].OriginalPte.u;
if( v3.Long )
return LODWORD(v3.Long) + 40 * ((a1 >> 18) & 7);
else
return 0;
}Referenced by:
MiComputePxeWalkAction
MiProbeAndLockPrepare
MiReleaseSystemCacheView
MiSynchronizeSystemVa
MiTrimSharedPageFromViews
MmFreeSystemCacheReserveView
MmMapViewInSystemCache
MmSetAddressRangeModifiedEx
MmUnmapViewInSystemCache