HvlpAllocateOverlayPages
VOID *__stdcall HvlpAllocateOverlayPages(UINT64 PageCount){
VOID *ContiguousNodeMemory;
unsigned int v2;
_LARGE_INTEGER v3;
unsigned int v4;
UINT64 Protect;
UINT64 PreferredNode;
ContiguousNodeMemory = 0i64;
v2 = 0;
v3.QuadPart = -1i64;
do
{
v4 = v2++;
if( v4 >= 4 )
break;
v3.QuadPart += 0x40000000i64;
LODWORD(PreferredNode) = 0x80000000;
LODWORD(Protect) = 4;
ContiguousNodeMemory = MmAllocateContiguousNodeMemory(0x1000ui64, 0i64, v3, 0i64, Protect, PreferredNode);
}
while( !ContiguousNodeMemory );
if( !ContiguousNodeMemory )
{
LODWORD(PreferredNode) = 0x80000000;
LODWORD(Protect) = 4;
return MmAllocateContiguousNodeMemory(0x1000ui64, 0i64, (_LARGE_INTEGER)-1i64, 0i64, Protect, PreferredNode);
}
return ContiguousNodeMemory;
}Referenced by:
HvlInitializeProcessor
HvlSetupPhysicalFaultNotificationQueue