PiDqGrowPropertyArray

INT64 __stdcall PiDqGrowPropertyArray(const _DEVPROPERTY **Properties, UINT64 PropertyCount, UINT64 MaxPropertyCount){
  __int64 v4; 
  unsigned int v5; 
  UINT8 *PoolWithTag; 
  const _DEVPROPERTY *v7; 
  v4 = (unsigned int)PropertyCount;
  v5 = 0;
  PoolWithTag = (UINT8 *)ExAllocatePoolWithTag(PagedPool, 48i64 * (unsigned int)MaxPropertyCount, 0x58706E50ui64);
  v7 = (const _DEVPROPERTY *)PoolWithTag;
  if( PoolWithTag )
  {
    if( *Properties )
    {
      memmove(PoolWithTag, (UINT8 *)*Properties, 48 * v4);
      ExFreePoolWithTag((PVOID)*Properties, 0x58706E50u);
    }
    *Properties = v7;
  }
  else
  {
    return(unsigned int)-1073741670;
  }
  return v5;
}

Referenced by:

PiDqActionDataGetAllPropertiesInAllLanguages
PiDqActionDataGetAllPropertiesInBestLanguage
PiDqActionDataGetChangedProperties