MmAllocateContiguousNodeMemory
VOID *__stdcall MmAllocateContiguousNodeMemory(
UINT64 NumberOfBytes,
LARGE_INTEGER LowestAcceptableAddress,
LARGE_INTEGER HighestAcceptableAddress,
LARGE_INTEGER BoundaryAddressMultiple,
UINT64 Protect,
UINT64 PreferredNode){
unsigned int v7;
unsigned __int64 v8;
unsigned __int64 v9;
UINT64 v10;
unsigned int v11;
UINT64 v12;
UINT64 v13;
VOID *result;
unsigned int v15;
UINT64 ProtectionMask;
UINT64 v17;
UINT64 v18;
if( (BoundaryAddressMultiple.LowPart & 0xFFF) != 0 )
return 0i64;
v7 = MiMakeProtectionMask((unsigned int)Protect);
v11 = v7;
if( (Protect & 0x100) != 0 )
return 0i64;
if( v7 == -1 )
return 0i64;
if( (v7 & 5) != 4 )
return 0i64;
if( (v7 & 2) != 0 )
{
v15 = v7 >> 3;
if( v15 == 1 || v15 == 3 && (v11 & 7) != 0 )
return 0i64;
}
v12 = v8 >> 12;
v13 = v9 >> 12;
if( v12 > 0xFFFFFFFFFi64 )
v12 = 0xFFFFFFFFFi64;
if( v10 > v12 )
return 0i64;
LODWORD(v17) = PreferredNode;
LODWORD(ProtectionMask) = v11;
MiAllocateContiguousMemory(NumberOfBytes, v10, v12, v13, ProtectionMask, v17, v18);
return result;
}Referenced by:
HalAllocateCommonBufferExV2
HalpAllocateCR3Root
HalpAllocateDomainCommonBufferInternal
HalpDmaAllocateContiguousMemory
HalpDmaControllerInitializeController
HvlpAllocateOverlayPages
IommupHvInitializeLibrary
IopInitializeInMemoryDumpData
MmAllocateContiguousMemorySpecifyCacheNode
ViAllocateContiguousMemory