windows driver 的入门方法

最近因为公司的要求,需要看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 开发的人有一点给的帮助




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
想要入门Windows驱动开发,可以采用以下步骤和资源: 1. 阅读微软官方文档:微软提供了详细的Windows驱动程序入门指南,其中包括了驱动程序的基本概念、开发环境的设置和开发流程等。可以参考微软官方文档进行学习和实践。 2. 学习驱动开发模型:在刚接触驱动开发的新手中,不建议采用WDM(Windows驱动程序模型)进行开发。推荐学习并使用WDF(Windows驱动框架)进行开发,因为WDF提供了更高层次的抽象和更简化的开发流程。可以参考《竹林溪径——深入浅出Windows驱动开发》和《Developing Drivers with the Windows Driver Foundation》这两本基于WDF开发驱动的中文和英文书籍。 3. 掌握驱动开发的基本知识和技能:对于新手来说,了解驱动开发的基本概念和原理是非常重要的。可以学习如何编写驱动程序、设备管理、内存管理和处理中断等。可以参考《竹林溪径——深入浅出Windows驱动开发》一书中的内容和微软官方文档提供的实践指南。 4. 实践和调试:驱动开发是一个需要不断实践和调试的过程。建议使用虚拟机或者物理设备进行测试和调试,以确保驱动程序的正确性和稳定性。 总之,入门Windows驱动开发需要学习官方文档、选择合适的开发模型、掌握驱动开发的基本知识和技能,并进行实践和调试。通过不断的学习和实践,可以逐渐掌握Windows驱动开发的技术和能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Windows驱动开发入门指引](https://blog.csdn.net/fuhanghang/article/details/123333156)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Windows驱动开发之入门篇(一)](https://blog.csdn.net/Sagittarius_Warrior/article/details/51000241)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值