您的位置:首页 > 其它

windows driver 的入门方法

2012-07-07 11:57 260 查看
最近因为公司的要求,需要看windows 下面的driver,下面就我在这几天看的几点体会:

开发windows 驱动首先需要两个开发工具:visual studio 、WDK

visual studio 是micro soft 提供的IDE 开发工具,WDK 主要包含一些我们开发所用的库文件

驱动的入口函数:DriverEntry

NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,

IN PUNICODE_STRING RegistryPath)

{

… … … …

return STATUS_SUCCESS;

}

一:操作系统是如何安装我们的驱动程序的呢??

1、我们用2012 的visuall新建一个WDF 的kenel 模式的driver 的时候,我们会自动生成一个.inf 文件,我们安装驱动的时候,就是通过这个文件来指导OS进行安装的,一般安装在了(windows\system32\drivers子目录下)目录下面

2、这个.inf 里面包括哪些内容呢??

设备类型、设备型号、厂商信息、程序版本号…。

对操作系统版本和CPU类型的要求…

源文件(.sys文件)的文件名和所在位置

安装目标子目录

在注册表中添加哪些内容

硬件配置信息

安全配置信息

包括以上等的一些信息

二:设备驱动的加载过程:

OS查找到该设备的硬件键之后,再通过硬件键的Service子键查到该设备的服务键(HKLM\SYSTEM \CurrentControlSet\Services的某个子目录)通过服务键的ImagePath子键的值就可以找到该设备所对应的驱动程序。OS扫描内存,看该驱动是否已被加载,如果没有,则立即加载该驱动,并调用该驱动的“DiverEnry”回调函数。加载完毕之后,OS调用该驱动的“AddDevice”回调函数通知驱动程序有新的设备到来。

关于键值的寻找我们直接进入windows 的cmd 窗口下,输入regedit 就是打来注册表就可以找到了,不知道的可以自己去尝试下

三:学习windows driver 的资料

1、学习windows driver 要多多光顾msdn 网站,上面提供了很多的最新的microsoft 动态:http://msdn.microsoft.com/en-us/library/ff557573%28vs.85%29.aspx

2、还有就是要多看microsoft 提供的wdlk document 的这个文档,这里面提供了很多的windows driver 的函数查询方法,通过这个手册可以找到windows driver 里面调用的函数的意思,这个很重要,下载的地址是:http://msdn.microsoft.com/zh-cn/library/gg487458.aspx,这个里面也提供了很多的windows上的driver开关的前人开发的文档,感觉还是挺不错的

3、要使用visual studio 进行经常的操作,多看,就慢慢熟悉了

我也只是看了几天,知道的也不多,希望对刚学windows driver 开发的人有一点给的帮助
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: