MiCreateTopLevelUltraMappings
INT64 __stdcall MiCreateTopLevelUltraMappings(UINT64 Pool, INT64 a2){
INT64 v2;
unsigned int v3;
char *v4;
__int64 v5;
__int64 v6;
__int64 v7;
_SLIST_HEADER *v8;
INT64 v10;
v2 = qword_140C4F848;
v3 = 0;
v4 = (char *)MmGetPteBase() + (((unsigned __int64)qword_140C4F848 >> 9) & 0x7FFFFFFFF8i64);
LODWORD(v10) = 0;
if( !(unsigned int)MiMakeZeroedPageTablesEx((INT64)v4, (INT64)(v4 + 0x7FFFFFFF8i64), 6ui64, 9i64, v10) )
return 0i64;
if( !(unsigned int)MiInitializeUltraSpace((INT64)&qword_140C4E930, v2) )
return 0i64;
LODWORD(v5) = MiAllocatePool((struct _SLIST_ENTRY *)0x48);
v6 = v5;
if( !v5 )
return 0i64;
if( KeNumberNodes )
{
do
{
v7 = 8i64;
v8 = (_SLIST_HEADER *)(v6 + ((unsigned __int64)v3 << 9));
do
{
InitializeSListHead(v8);
v8 = (_SLIST_HEADER *)((char *)v8 + 64);
--v7;
}
while( v7 );
++v3;
}
while( v3 < (unsigned __int16)KeNumberNodes );
}
qword_140C4E978 = v6;
return 1i64;
}Referenced by:
MiInitNucleus