阅读:1306回复:2
USB转双串口 win98驱动问题!
用VxD+WDM做的用于WIN98的USB转双串口的设备的驱动程序,在VxD中应用发过来的写请求使用IOCTL发给WDM驱动程序,由WDM使用URB_BULK_OR_INTERRUPT_TRANSFER结构调用IoCallDriver向总线发出写请求.
问题是这样,因为映射两个串口,所以没有将这两个串口的PDO使用IoAttachDeviceToDeviceStack加到设备堆栈上,VxD中的收到的IRP应该层数不够,所以在WDM中将要写的数据作为参数创建新的IRP.我重新分配了NonPagedPool内存,将这个缓冲区复制出来,但是在调用IoCallDriver后,发现这个函数没有正确执行,在调用返回PENDING后,等待信号量置位的过程超时.使用Bus Hound工具看不到有数据写到总线上. 另外,这个驱动程序已经可以正确安装初始化设备,而且PIPE RESET是可以正确发送到总线上的. 请问高人,我的程序究竟问题出在哪? [编辑 - 5/17/05 by goodhopecape] |
|
沙发#
发布于:2005-05-18 10:35
我现在也在做这个东东,用pl2303做的,有机会讨论讨论啊~~
|
|
|
板凳#
发布于:2005-05-18 10:37
小弟现在要为pl2303芯片开发一个驱动。芯片的功能是USB转RS232,芯片与电脑usb直接相连,另一端接com设备。所以,驱动程序要实现一个虚拟的串口,这个虚拟的串口对客户应用程序来说,和普通的串口一样。
我刚到prolific网站下了一些芯片资料,datasheet等看了一下,但现在还是不知从何下手,请各位大侠帮我提点建议或方向,偶感激不尽, sfqj82@yahoo.com.cn |
|
|