Ну в целом проблема решилась, AudioUSB и Кейловский VirtualCom для LPC2148 вместе живут вполне нормально. Только в драйвере в функции UsbCom_SelectInterface изменил
Код
TotalInterfaces = ConfigurationDescriptor->bNumInterfaces;
InterfaceList[0].InterfaceDescriptor = NULL;
InterfaceList[0].Interface = NULL;
InterfaceList[1].InterfaceDescriptor = NULL;
InterfaceList[1].Interface = NULL;
DbgPrint("UsbCom_SelectInterface() DO=%08x Interfaces=%d\n", DeviceObject, lTotalInterfaces );
StartPosition = (PVOID)((ULONG)ConfigurationDescriptor + (ULONG)(ConfigurationDescriptor->bLength));
InterfaceList[0].InterfaceDescriptor = USBD_ParseConfigurationDescriptorEx (
ConfigurationDescriptor,
StartPosition, //search from start of config descriptro
-1, // try interface #0
0, // alternate setting
0xFF, // interface class
-1, // interface subclass
0xFF); // interface protocol
if(InterfaceList[0].InterfaceDescriptor != NULL)
{
UCHAR bInterfaceSubClass;
bInterfaceSubClass = InterfaceList[0].InterfaceDescriptor->bInterfaceSubClass;
if(bInterfaceSubClass <= 1)
{
deviceExtension->ChannelNumber = bInterfaceSubClass;
}
else
{
ntStatus = STATUS_DEVICE_CONFIGURATION_ERROR;
goto UsbCom_SelectInterface_Exit1;
}
}
else
{
ntStatus = STATUS_DEVICE_CONFIGURATION_ERROR;
goto UsbCom_SelectInterface_Exit1;
}
if ( ( urb = USBD_CreateConfigurationRequestEx(ConfigurationDescriptor, InterfaceList) ) == NULL ) {
DbgPrint("UsbCom_SelectInterface() DO=%08x USBD_CreateConfigurationRequest() : FAIL\n", DeviceObject );
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
goto UsbCom_SelectInterface_Exit1;
}
InterfaceDescriptor = InterfaceList[0].InterfaceDescriptor;
InterfaceInformation = InterfaceList[0].Interface;
Номер порта [code]теперь сохраняю в bInterfaceSubClass. Ну и в инф файле заменить &MI_01 на &MI_03 ну или какой там по счету интерфейс получается.