Всем доброго времени суток.
Возникла проблема с тем, чтобы виртуальный последовательный порт (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-устройства операционка видела указанный в прошивке серийник ?