HalpMmBuildTiledMemoryMap
NTSTATUS __stdcall HalpMmBuildTiledMemoryMap(_TILED_MEMORY_MAP *MemoryMap, _KPROCESSOR_STATE *ProcessorState){
unsigned int v2;
__int64 v3;
__int64 v5;
VOID *v6;
int v7;
v3 = *(&CmpDummyThreadEvent + 865);
v5 = v2;
LODWORD(MemoryMap->PageDirectory) = v2;
v6 = *(VOID **)(v3 + 8i64 * v2);
if( !v6 )
{
HalpAllocateCR3Root(v2);
v6 = *(VOID **)(*(&CmpDummyThreadEvent + 865) + 8 * v5);
if( !v6 )
return -1073741801;
}
memset(v6, 0i64, 0x1000u);
v7 = HalpMapCR3Ex((PVOID)BaseAddress);
if( v7 < 0 || (v7 = HalpMapCR3Ex(HalpLMStub), v7 < 0) )
{
HalpMmFreeTiledMemoryMap((UINT64 *)MemoryMap);
}
else
{
v7 = 0;
HalpCommitCR3Worker(*(VOID ***)(*(&CmpDummyThreadEvent + 865) + 8 * v5), 3ui64);
HIDWORD(MemoryMap->PageDirectory) = MmGetPhysicalAddress((UINT64)v6);
}
return v7;
}Referenced by:
HalpBuildResumeStructures
HalpInterruptStartProcessor