求助,如何编写一个程序模拟usb设备插拔
小小峰逍遥 2017-12-13 09:20:20 想咨询一个问题,就是我准备基于VS2013+WDK8.1环境的WDM驱动模型,准备做一个虚拟的usb设备(例如:模拟一个u盘),但是模拟的U盘需要有插拔过程,如何实现虚拟usb设备的插拔过程呢??
对于usb设备,他们是即插即用设备,只有当windows检测到有设备插入时,会枚举该设备,然后通知PNP(即插即用)管理器加载底层总线驱动,底层总线驱动会创建PDO(物理设备对象),然后windows内核加载我们开发的设备驱动程序,并且把PDO作为参数传入我们开发的驱动程序,我们开发的驱动程序会在AddDevice派遣函数里创建FDO(功能设备对象),并且把这个FDO挂载到PDO上形成设备堆栈,至此完成基本的初始化。
由于usb设备类驱动是上面描述的过程,因此我需要模拟usb设备的插拔,让PNP管理器通知底层驱动创建PDO,否则我就没法获取PDO了。
希望能得到大家一丝帮助。或者说是不是说制作了一个虚拟usb设备,压根不需要底层总线驱动创建PDO,让这个虚拟usb设备不经过底层总线,而直接与上层的应用程序打交道?