HalpAllocateCR3Root
NTSTATUS __stdcall HalpAllocateCR3Root(INT64 a1){
__int64 v1;
VOID *ContiguousNodeMemory;
UINT64 Protect;
UINT64 PreferredNode;
v1 = (unsigned int)a1;
if( (unsigned int)a1 >= (unsigned int)HalpQueryMaximumRegisteredProcessorCount() )
return -1073741811;
if( *(_QWORD *)(*(&CmpDummyThreadEvent + 865) + 8 * v1) )
return 0;
LODWORD(PreferredNode) = 0x80000000;
LODWORD(Protect) = 4;
ContiguousNodeMemory = MmAllocateContiguousNodeMemory(
0x1000ui64,
0i64,
(_LARGE_INTEGER)0xFFFFFFFFi64,
0i64,
Protect,
PreferredNode);
if( ContiguousNodeMemory )
{
*(_QWORD *)(*(&CmpDummyThreadEvent + 865) + 8 * v1) = ContiguousNodeMemory;
return 0;
}
return -1073741670;
}Referenced by:
HalpDispatchPnp
HalpMmBuildTiledMemoryMap