VerifierMmAllocateContiguousMemory

VOID *__stdcall VerifierMmAllocateContiguousMemory(UINT64 NumberOfBytes, _LARGE_INTEGER HighestAcceptableAddress){
  int v5; 
  VOID *v6; 
  UINT64 v7; 
  VOID *retaddr; 

  if( VfFaultsInjectResourceFailure(0i64) )
    return 0i64;
  v5 = (MmVerifierData & 0x2000000) != 0 ? 4 : 64;
  if( (MmVerifierData & 0x4000000) != 0 && HighestAcceptableAddress.QuadPart < 0x100000000ui64 )
    VerifierBugCheckIfAppropriate(0xC4ui64, 0x141u, HighestAcceptableAddress.anonymous_0.LowPart, NumberOfBytes, 0, v7);
  v6 = (VOID *)((__int64(__fastcall *)(_QWORD, _QWORD, _QWORD, _QWORD, _DWORD, _DWORD))pXdvMmAllocateContiguousNodeMemory)(
                 NumberOfBytes,
                 0i64,
                 (_LARGE_INTEGER)HighestAcceptableAddress.QuadPart,
                 0i64,
                 v5,
                 0x80000000);
  VfAllocPoolNotification(v6, NumberOfBytes);
  if( v6 )
  {
    VfFillAllocatedMemory(v6, NumberOfBytes);
    if( (MmVerifierData & 8) != 0 )
      ViTargetTrackContiguousMemory(retaddr, v6, NumberOfBytes);
  }
  return v6;
}

Referenced by:

No references.