HalpMmBuildTiledMemoryMap
__int64 __fastcall HalpMmBuildTiledMemoryMap(unsigned int *a1, __int64 a2, unsigned int a3){
__int64 v3;
__int64 v5;
void *v6;
NTSTATUS v7;
v3 = HalpCR3Root;
v5 = a3;
*a1 = a3;
v6 = *(void **)(v3 + 8i64 * a3);
if( !v6 )
{
HalpAllocateCR3Root(a3);
v6 = *(void **)(HalpCR3Root + 8 * v5);
if( !v6 )
return 3221225495i64;
}
memset((INT64)v6, 0i64);
v7 = HalpMapCR3Ex(HalpLowStubPhysicalAddress);
if( v7 < 0 || (v7 = HalpMapCR3Ex(HalpLMStub), v7 < 0) )
{
HalpMmFreeTiledMemoryMap((UINT64 *)a1);
}
else
{
v7 = 0;
HalpCommitCR3Worker(*(VOID ***)(HalpCR3Root + 8 * v5), 3ui64);
a1[1] = MmGetPhysicalAddress(v6).LowPart;
}
return(unsigned int)v7;
}Referenced by:
HalpBuildResumeStructures
HalpInterruptStartProcessor