保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

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


UE;}
  
  }
  
  为了将硬件中断与编写的中断服务程序连接在一起,采用InitializeAndConnect方法,部分代码如下:
  
  NTSTATUSTranCardDevice?押?押OnStartDevice(KIrpI)
  
  {……
  
  status=m_MyIrq.InitializeAndConnect(
  
  pResListTranlated,
  
  LinkTo(Isr_MyIrq),
  
  This;)
  
  ……}
  
  2.4驱动程序的调用
  
  编写驱动程序本身不是最终目的,最终目的是调用驱动程序管理资源,并为用户应用程序使用。驱动程序加载以后,它的许多进程处于Idle状态,实际上需要用户应用程序去调用激活。应用程序利用Win32API直接调用驱动程序,实现驱动程序和应用程序的信息交互。
  
  首先用CreateFile()打开设备,获得一个指向设备对象的句柄。使用CreateFile函数时应注意:由于驱动程序是*.sys,所以第一个参数应该是这个设备对象的标志连接(symboliclink)。该标志连接名有一个设置数据文件搜索路径的数字号,而这个数字号通常是零。如果这个连接名是″TranCard″,则传递给CreateFile的宇符串就是:″\\\\.\\TranCard0″。例如:
  
  HANDLEhDevice=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)使用symbolloader加载驱动程序,然后使用SoftICE跟踪调试,确认驱动程序正常加载;(2)对核心的中断响应程序代码,用SoftICE中的Genint命令产生虚拟中断,单步跟踪中断;(3)硬件发送大量的数据,通过查看内存的数据,确认数据传输是否正确。
  
  在驱动程序的调试过程中,经常出现系统“死机”、“蓝屏”等现象,这些情况可能因内存访问分页错误、设备资源和系统资源冲突、I/O使用错误、程序中“指针”使用错误等因素造成。
  
  上述方案均调试通过。使用WDM模式开发驱动程序,程序结构清晰,开发周期较短,效率高。在PCI从模式条件下,大数据量连续传输速度可达28Mbps以上。
  
  
  
  
  
 

《PCI传输卡的WDM驱动程序设计(第4页)》
本文链接地址:http://www.oyaya.net/fanwen/view/140176.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。