VerifierExAllocatePool

VOID *__fastcall VerifierExAllocatePool(_POOL_TYPE PoolType, UINT64 NumberOfBytes){
  VOID *result; 
  __int32 v5; 
  VOID *CallingAddress; 
  if( (MmVerifierData & 0x400000) == 0 || (VfRuleClasses & 0x800000000i64) != 0 || (MmVerifierData & 1) != 0 )
  {
    VfCheckPoolType(PoolType, CallingAddress, 0i64);
    ++dword_140C2A63C;
    if( (MmVerifierData & 0x1000) != 0 )
      ViTargetIncrementCounter(CallingAddress, 0xA4ui64);
    v5 = PoolType | 0x80;
    if( XdvEnabled )
      return(VOID *)pXdvExAllocatePool[0](
                       v5,
                       NumberOfBytes,
                       1885434455,
                       32,
                       (__int64)CallingAddress,
                       (__int64)VeAllocatePoolWithTagPriority);
    else
      return VeAllocatePoolWithTagPriority(
               (_POOL_TYPE)v5,
               NumberOfBytes,
               0x70617257ui64,
               HighPoolPriority,
               CallingAddress);
  }
  else
  {
    if( (MmVerifierData & 0x2000000) != 0 )
      VfCheckPoolType(PoolType, CallingAddress, 0i64);
    LODWORD(result) = ExAllocatePool(PoolType, NumberOfBytes);
  }
  return result;
}

Referenced by:

No references.