VerifierMmAllocateContiguousNodeMemory
VOID *__stdcall VerifierMmAllocateContiguousNodeMemory(
UINT64 NumberOfBytes,
LARGE_INTEGER LowestAcceptableAddress,
LARGE_INTEGER HighestAcceptableAddress,
LARGE_INTEGER BoundaryAddressMultiple,
UINT64 Protect,
UINT64 PreferredNode){
VOID *v11;
UINT64 v12;
VOID *retaddr;
VfCheckPageProtection((unsigned int)Protect, retaddr);
if( (unsigned int)VfFaultsInjectResourceFailure(0i64) )
return 0i64;
if( (MmVerifierData & 0x4000000) != 0 && HighestAcceptableAddress.QuadPart < 0x100000000ui64 )
VerifierBugCheckIfAppropriate(0xC4ui64, 0x141ui64, HighestAcceptableAddress.QuadPart, NumberOfBytes, 0i64, v12);
v11 = (VOID *)((__int64(__fastcall *)(_QWORD, _QWORD, _QWORD, _QWORD, _DWORD, _DWORD))pXdvMmAllocateContiguousNodeMemory)(
NumberOfBytes,
(LARGE_INTEGER)LowestAcceptableAddress.QuadPart,
(LARGE_INTEGER)HighestAcceptableAddress.QuadPart,
(LARGE_INTEGER)BoundaryAddressMultiple.QuadPart,
Protect,
PreferredNode);
VfAllocPoolNotification(v11, NumberOfBytes);
if( v11 )
{
VfFillAllocatedMemory(v11, NumberOfBytes);
if( (MmVerifierData & 8) != 0 )
ViTargetTrackContiguousMemory(retaddr, v11, NumberOfBytes);
}
return v11;
}Referenced by:
No references.