我正在开发一种RNDIS复合设备,它包括RNDIS设备,usbnet设备,调制解调器设备和自定义CDC设备.
PC正在运行Win7 32位,我正在使用默认的RNDIS驱动程序.当我只使用RNDIS设备回答Windows枚举时,一切正常.但是当我将所有4个设备组合成描述符作为复合设备时,Windows仍然正确枚举而其他3个设备工作正常,但RNDIS设备遇到"无法启动错误代码10"的问题.
我用USB分析器跟踪USB数据流,发现Windows RNDIS驱动程序在"设置配置"后没有发送RNDIS初始化消息.
复合设备描述符如下:
devDesc[0] = 0x12; // bLength - Descriptor length
devDesc[1] = 0x01; // bDescriptorType - Descriptor Type
devDesc[2] = bcdUSB_LSB; // bcdUSB (LSB) - Device Compliant to USB specification ..
devDesc[3] = bcdUSB_MSB; // bcdUSB (MSB)
devDesc[4] = 0x00; // bDeviceClass - class of the device
devDesc[5] = 0x00; // bDeviceSubClass - subclass of the device
devDesc[6] = 0x00; // bDeviceProtocol - protocol of the device
devDesc[7] = bEp0MaxPacketSize; // bMaxPacketSize0 …Run Code Online (Sandbox Code Playgroud)