Всем доброго времени суток.

Возникла проблема с тем, чтобы виртуальный последовательный порт (CDC device) имет правильный серийный номер являясь при этом частью USB Composite device.

Заполняю структуру g_pStringDescriptors

Код
static const unsigned char * const g_pStringDescriptors[] =
{
    g_pLangDescriptor,
    g_pManufacturerString,
    g_pProductString,
    g_pSerialNumberString
};


Указатель на неё вставляю в структуры g_sCompDevice и g_psCDCDevice.

Подключаю устройтсво к компьтеру с виндой. В device manager появляются два устройства - USB Composite device и виртуальный последовательный порт, но у USB Composite device серийный номер такой, как был указан в g_pStringDescriptors, а вот CDC device напрочь игнорирует эту структуру. Если же убрать композитное устройство и сделать CDC-device самостоятельным, то структура g_pStringDescriptors перестаёт игнорироваться и все параметры из неё видны операционной системе.

Вопрос: как добиться того, чтобы у CDC-устройства, находящегося в составе композитного USB-устройства операционка видела указанный в прошивке серийник ?