MiInitializeTopLevelBitmap
VOID __stdcall MiInitializeTopLevelBitmap(){
_MMPTE *v0;
INT64 i;
__int64 v2;
_RTL_BITMAP BitMapHeader;
*(&BitMapHeader.SizeOfBitMap + 1) = 0;
*(&stru_140C4DB30 + 290) = (unsigned __int8)ExGenRandom(ExGenRandomDomainUserVisible);
*(_OWORD *)((char *)&stru_140C4DB30 + 1128) = 0i64;
BitMapHeader.SizeOfBitMap = 256;
*(_OWORD *)((char *)&stru_140C4DB30 + 1144) = 0i64;
BitMapHeader.Buffer = (unsigned int *)((char *)&stru_140C4DB30 + 1128);
v0 = MmGetPml4eBase() + 256;
for( i = (INT64)v0; (i & 0xFFF) != 0; i += 8i64 )
{
LODWORD(v2) = MI_READ_PTE_LOCK_FREE(i);
if( v2 )
RtlSetBits(&BitMapHeader, (i - (__int64)v0) >> 3, 1ui64);
}
RtlSetBits(&BitMapHeader, (unsigned int)((i - (__int64)v0) >> 3) - 1, 1ui64);
if( (MiFlags & 0x200000) == 0 )
*((_DWORD *)&stru_140C4DB30 + 289) &= ~0x2000u;
}Referenced by:
MiInitializeSystemVa