VerifierExAllocatePoolWithTag

VOID *__fastcall VerifierExAllocatePoolWithTag(_POOL_TYPE PoolType, UINT64 NumberOfBytes, UINT64 Tag){
  unsigned int v4; 
  __int32 v7; 
  VOID *CallingAddress; 
  v4 = Tag;
  if( (MmVerifierData & 0x400000) == 0 || (VfRuleClasses & 0x800000000i64) != 0 || (MmVerifierData & 1) != 0 )
  {
    VfCheckPoolType(PoolType, CallingAddress, Tag);
    v7 = PoolType | 0x80;
    if( XdvEnabled )
      return(VOID *)pXdvExAllocatePoolWithTag[0](
                       v7,
                       NumberOfBytes,
                       v4,
                       32,
                       (__int64)CallingAddress,
                       (__int64)VeAllocatePoolWithTagPriority);
    else
      return VeAllocatePoolWithTagPriority((_POOL_TYPE)v7, NumberOfBytes, v4, HighPoolPriority, CallingAddress);
  }
  else
  {
    if( (MmVerifierData & 0x2000000) != 0 )
      VfCheckPoolType(PoolType, CallingAddress, 0i64);
    return ExAllocatePoolWithTag(PoolType, NumberOfBytes, v4);
  }
}

Referenced by:

No references.