阅读:3087回复:0
usb虚拟串口(上层过滤驱动serenum方式)
发现在这个板块有比较多的关于USB虚拟串口的帖子,看是看了些,但是还有很多疑问,发个帖请教下。
现在手上一个产品,线程的驱动就是通过自己编写功能驱动,添加上层过滤驱动serenum.sys,自己也看了WDK里serenum的源码,对其中一些功能有点费解,如下: 1.在虚拟串口的应用中,serenum.sys是不是仅仅作为上层过滤驱动,对读写的IRP进行处理? 2.会枚举串口并重新创建PDO吗?既然是作为上层过滤驱动,那么肯定是已经有PDO后,才会去安装对应的FDO和过滤驱动,那么Serenum_ReenumerateDevices是不是在虚拟串口中没有使用到。 3.在虚拟串口时,数据流是个什么样的?serenum.sys里处理的都是PNP,POWER,enum等内容,没有对数据进行处理,那么USB数据和AURT数据格式上怎么装换?功能驱动的作用啊? 4.设备安装类位串口,但是实际是USB设备。数据接收发送的硬件肯定USB相关的寄存器,例如发送,串口数据,经过滤驱动,功能驱动,最终总线驱动发出去。这个比较好理解。 但是接收数据,是靠硬件中断信号,采取读取,还是硬件只要来了,就会放到特定的FIFO中,实际上上层是一直在读取数据的,没有的话就等待。流程也是 APP->过滤驱动(serenum)-》fdo-》pdo? 刚接触WINDOWS驱动开发,菜鸟级别的,知道的大侠不要吝啬你的知识。 |
|