MiCreateTopLevelUltraMappings
NTSTATUS __stdcall MiCreateTopLevelUltraMappings(UINT64 Pool, INT64 a2){
INT64 v2;
unsigned int v3;
char *v4;
char *v5;
__int64 v6;
_SLIST_HEADER *v7;
INT64 v9;
v2 = *(&stru_140C4DB30 + 931);
v3 = 0;
v4 = (char *)MmGetPteBase() + ((*(&stru_140C4DB30 + 931) >> 9) & 0x7FFFFFFFF8i64);
LODWORD(v9) = 0;
if( !MiMakeZeroedPageTablesEx((INT64)v4, (INT64)(v4 + 0x7FFFFFFF8i64), 6ui64, 9i64, v9) )
return 0;
if( !MiInitializeUltraSpace((INT64)&stru_140C4DB30 + 3584, v2) )
return 0;
v5 = (char *)MiAllocatePool(72i64, (unsigned __int64)(unsigned __int16)KeNumberNodes << 9, 0x20206D4Dui64);
if( !v5 )
return 0;
if( KeNumberNodes )
{
do
{
v6 = 8i64;
v7 = (_SLIST_HEADER *)&v5[512 * (unsigned __int64)v3];
do
{
InitializeSListHead(v7);
v7 += 4;
--v6;
}
while( v6 );
++v3;
}
while( v3 < (unsigned __int16)KeNumberNodes );
}
*(&stru_140C4DB30 + 457) = v5;
return 1;
}Referenced by:
MiInitNucleus