USB设备的多驱动程序

USB设备的多驱动程序,usb,device-driver,Usb,Device Driver,USB设备是否可以支持多个驱动程序?我想支持我自己的专有驱动程序,但也支持CCID作为第二选择。插入设备后,用户可以选择要使用的设备。要使用的驱动程序是由USB描述符所说的内容决定的,对吗?如果是这样,是否可以表明两个驱动程序都受支持?支持两个驱动程序的想法可行吗?我确信一个设备不可能同时使用两个驱动程序,但可能的是,该设备使用一个类类型和驱动程序进行枚举,然后在其操作过程中,响应USB上的某个命令或设备的操作,使其断开连接,然后使用第二个驱动程序作为不同类型的设备重新枚举 例如,我正在开发的产

USB设备是否可以支持多个驱动程序?我想支持我自己的专有驱动程序,但也支持CCID作为第二选择。插入设备后,用户可以选择要使用的设备。要使用的驱动程序是由USB描述符所说的内容决定的,对吗?如果是这样,是否可以表明两个驱动程序都受支持?支持两个驱动程序的想法可行吗?

我确信一个设备不可能同时使用两个驱动程序,但可能的是,该设备使用一个类类型和驱动程序进行枚举,然后在其操作过程中,响应USB上的某个命令或设备的操作,使其断开连接,然后使用第二个驱动程序作为不同类型的设备重新枚举

例如,我正在开发的产品通常会枚举为CDC(串行端口仿真),但当我需要重新加载代码时,它会重新枚举为不同的设备类型,并使用芯片供应商提供的驱动程序来执行代码下载。完成此操作后,设备将再次以CDC设备类型重新枚举自身,并恢复其串行端口模拟


因此,您需要提供一个“命令”界面,该界面将触发两种操作模式之间的转换,并确保两个驱动程序安装在主机上,为模式切换做好准备。

在Windows上,有两个受支持的驱动程序是可能的。事实上,要获得Microsoft徽标认证,USB设备必须支持此功能。(要求)

但是,您描述的UI行为不是由Microsoft提供的。驾驶员选择是自动的


您的USB设备可以指示它支持两个接口。在这种情况下,将加载两个驱动程序。

这是操作系统行为,而不是设备选择。你甚至不能假设作为一个设备,操作系统需要一个驱动程序。例如,可以通过BIOS直接访问USB键盘或磁盘,而无需任何驱动程序。