阅读:1259回复:1
有事向求!!谢谢帮忙!!
各位高手帮帮忙,来解决我的疑惑!
如果给你一个硬件设备,希望通过*.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! |
|
沙发#
发布于:2002-02-28 09:52
1. 什么总线?
2. 找本书看看,这些入门的知识很容易理解 3. 不一定非要用WriteFile。WriteFile的意思是写一些东西,如果你不是为了这个目的,用DeviceIOControl更好,IOCTL_CODE可以区分不同的请求。 4. 要用DDK写driver,书里面也讲的很清楚,也有巨多的sample。 这么多问题,只有3分,太少了吧? ;) |
|
|