PCI传输卡的WDM驱动程序设计
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以上。
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论