Цитата
Еще вопросик. Хочется вот мне, чтоб у меня девайс видился как два, или три, или четыре СОМ-порта (USB CDC класс). Для этого, я так понимаю, надо создать несколько интерфейсных дескрипторов, для каждого интерфейса свои pipe? Но как потом каждый порт в inf-файле описывать?
Такое устройство - composite device.
( как с ним работать см.
http://msdn.microsoft.com/library/default.....asp?frame=true )
Для composite device драйвер не нужен, и не нужно его прописывать в INF файле. Главное чтобы VID/PID вашего устройства не совпадал с уже зарегистрированными системой и устройство имело несколько интерфейсов. Драйвер поставится автоматически.
С интерфейсами поступать нужно так:
Если интерфейс вашего устройства реализует стандартный класс и его поддерживает система, то его прописывать в INF файле не нужно. Система поставит его сама.
Если интерфейс нестандартного класса, то его нужно прописать в секции [Models] INF файла:
%MydeviceDesc% = Mydevice, USB\VID_vvvv&PID_pppp\MI_mm
где vvvv - номер VID, pppp - номер PID, mm - номер интерфейса MyDevice, равный значению поля bInterfaceNumber дескриптора интерфейса.
Для уcтройств стандартных классов ( и не только), реализующих несколько интерфейсов, а таким является USB CDC в полной реализации, дело несколько сложнее - необходимо в устройстве создать Interface Association Descriptors (IAD) см.
http://msdn.microsoft.com/library/default....e130efc.xml.aspPS. В последних версиях WDK появились дополнительные возможности, но я детально их не изучал.