MmFreeSystemCacheReserveView
INT64 __stdcall MmFreeSystemCacheReserveView(PVOID BugCheckParameter3){
MMPTE *PteAddress;
MMPTE *v3;
ULONG_PTR SystemCacheReverseMap;
ULONG_PTR v5;
__int16 v6;
INT64 result;
PteAddress = MiGetPteAddress(BugCheckParameter3);
v3 = (MMPTE *)((char *)PteAddress + 512);
SystemCacheReverseMap = MiGetSystemCacheReverseMap((UINT64)BugCheckParameter3);
v5 = SystemCacheReverseMap;
if( *(_QWORD *)(SystemCacheReverseMap + 16) )
KeBugCheckEx(0x1Au, 0x784ui64, SystemCacheReverseMap, (ULONG_PTR)BugCheckParameter3, 0i64);
do
{
v6 = MI_READ_PTE_LOCK_FREE((INT64)PteAddress);
if( (v6 & 1) != 0 || (v6 & 0x400) != 0 )
KeBugCheckEx(0x1Au, 0x785ui64, v5, (ULONG_PTR)BugCheckParameter3, 0i64);
PteAddress = (MMPTE *)((char *)PteAddress + 8);
}
while( PteAddress < v3 );
MiReleaseSystemCacheView((MMPTE *)((char *)PteAddress - 512));
return result;
}Referenced by:
CcUninitializePartitionVacbs