用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

PCI传输卡的WDM驱动程序设计

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-11 00:03:03
首先用CreateFile()打开设备,获得一个指向设备对象的句柄。使用CreateFile函数时应注意:由于驱动程序是*.sys,所以第一个参数应该是这个设备对象的标志连接(symbolic link)。该标志连接名有一个设置数据文件搜索路径的数字号,而这个数字号通常是零。如果这个连接名是″TranCard″,则传递给CreateFile的宇符串就是:″\\\\.\\ TranCard0″。例如:

HANDLE hDevice=CreateFile(″\\\\.\\TranCard0″)GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ, NULL?, OPEN_EXISTING,0,NULL);

然后用 DeviceIoControl()进行数据的传送。最后用CloseHandle( )关闭设备句柄。

下面是应用DeviceIoControl()程序片段。

{……

m_b=DeviceIoControl(hDevice,TRANCARD_IOCTL_

RECEIVE(buffer, sizeof,buffer, NULL,0,&buffersize,NULL);

……}

2.5 驱动程序的调试

采用SoftICE、DriverMonitor作为调试工具,基本调试过程如下:(1)使用symbol loader加载驱动程序,然后使用SoftICE跟踪调试,确认驱动程序正常加载;(2)对核心的中断响应程序代码,用SoftICE中的Genint命令产生虚拟中断,单步跟踪中断;(3)硬件发送大量的数据,通过查看内存的数据,确认数据传输是否正确。

在驱动程序的调试过程中,经常出现系统“死机”、“蓝屏”等现象,这些情况可能因内存访问分页错误、设备资源和系统资源冲突、I/O使用错误、程序中“指针”使用错误等因素造成。

上述方案均调试通过。使用WDM模式开发驱动程序,程序结构清晰,开发周期较短,效率高。在PCI从模式条件下,大数据量连续传输速度可达28Mbps以上。




上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:18,328.13000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号