dawner
驱动牛犊
驱动牛犊
  • 注册日期2002-02-25
  • 最后登录2002-04-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1349回复:2

有事向问,谢谢帮忙!!

楼主#
更多 发布于:2002-02-27 17:07
   各位高手帮帮忙,来解决我的疑惑!
  
   如果给你一个硬件设备,希望通过*.sys文件来驱动它,在编写*.sys文件的时候,

   1、你需要知道硬件的一些什么信息(如I/O端口、存储器地址、中断、DMA线等)还是不需要知道?
  
   2、驱动文件(如*.sys)一般编写有一定的格式:AddDevice、Create、Close、Pnp、Power、Read、Write、DeviceControl、SystemControl等。那是不是所有的文件都有以上的几步,如果不是,那哪些是设备驱动必须要的?

   3、一个Win32应用程序怎样与*.sys交互才能使得硬件设备能够进行一定的操作?是不是通过CreateFile(打开设备)、CloseHandle(在关闭设备时,取消挂起的I/O请求)、ReadFile(从设备获得数据)、WriteFile(向设备发送数据)、DeviceControl(对用户模式或内核模式客户程序可用的控制操作)等API函数来调用,怎样调用?比如说我想向设备发送一个命令做甲事而不是做乙事,显然是向设备进行WriteFile,那我请问设备怎样区分是甲事还是乙事呢?

   4、在编写驱动文件时,我在网上看到很多开发驱动的软件,像WinDriver 、DriverStdio等工具软件,我现在想学WDM编程,能不能不用下载这些软件而只用VC6.0和DDK两种语言工具来编写,如果可以,请告诉我怎样做?

   鉴于上面问题很多,可能要花费你很多时间,在此我表示对你衷心感谢,谢谢你给予我支持,以使我能够继续学习,再次表示谢谢!如果来信,请寄E_MAIL:Dawner@yeah.net!
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-02-27 20:50
1.驱动程序肯定需要它知道操作什么硬件,但具体的物理地址如果是即插即用,不需要知道很清楚,系统会提供。
2.驱动的基本框架中基本的几项是必须的,但根据支持的操作的不同,可能非常简单,也可能非常麻烦。
3.驱动程序设计好了以后会提供一个符号联接名,win32是利用他访问硬件的,writefile做的事很单一,一般复杂控制使用DeviceIOControl
4.利用VC++,DDK就可以编写驱动了,不过有些工作会麻烦些,建议利用提供的例子。
兄弟们,给点分吧
lvwj
驱动老牛
驱动老牛
  • 注册日期2001-08-21
  • 最后登录2021-01-31
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望181点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-02-27 23:07
1. 你必须清楚你的设备有哪些资源(IO,MEM,INT,DMA)可供使用。可以在你的驱动程序中查询所获得的资源
 
2。找一本入门的书好好读一下(站上有很多这方面的资料)。你的几个问题就能找到答案了。

3。看一下别人给的例子。
www.bjjcz.com
游客

返回顶部