EtwpAllocDataBlock

NTSTATUS __stdcall EtwpAllocDataBlock(
        UINT64 DataBlockSize,
        _ETWP_NOTIFICATION_HEADER *InDataBlock,
        _ETWP_NOTIFICATION_HEADER **OutDataBlock){
  NTSTATUS v3; 
  size_t v6; 
  VOID **PoolWithTag; 
  _ETWP_NOTIFICATION_HEADER *v8; 

  v3 = 0;
  *OutDataBlock = 0i64;
  if( InDataBlock && InDataBlock->NotificationSize != (_DWORD)DataBlockSize )
    return -1073741820;
  v6 = DataBlockSize;
  PoolWithTag = ExAllocatePoolWithTag(1ui64, (unsigned int)DataBlockSize, 1148679237i64);
  v8 = (_ETWP_NOTIFICATION_HEADER *)PoolWithTag;
  if( !PoolWithTag )
    return -1073741801;
  if( InDataBlock )
    memmove(PoolWithTag, InDataBlock, v6);
  else
    memset(PoolWithTag, 0i64, v6);
  v8->RefCount = 1;
  *OutDataBlock = v8;
  return v3;
}

Referenced by:

EtwpBuildNotificationPacket
EtwpClearSessionAndUnreferenceEntry
EtwpEnableGuid
EtwpNotifyGuid
EtwpQueueReply