随着工作时间的增加,感觉自己技术越做越向DESIGN发展哈哈,一些具体的工作反而少了很多,所以做为总结呢,把自己对WINDOWS驱动分享一下,当然了水平及时间都有限欢迎大家一起讨论。

其实在网上看招聘做驱动的工程师一般都要求比较长的工作经验,说实话在我一开始搞软件开发的时候总觉得要求工作经验不是很有道理,人家诸葛出山的时候都也是零经验吗,但是做了一段时间之后我只能说搞嵌入式的工程师要求工作经验其实还有一层涵义就是这个人能挺得住,呵呵,因为资料少吗。记得我开始搞WINCE的时候在坛子上发贴好像也没什么人回为这事还经常着急,不过现在看看也不奇怪,因为我当时问的例如什么编译过去去怎么办之类的问题根本就没法答。哈哈扯远了,就一句话吧只是想说搞驱动的必须要忍受圈子不如JAVA,.NET大,资料不如人家多的痛苦,很多时候就是要看英文原本的东西。

在今年获得微软MVP的开始总是觉得自己的水平还是远远不够的和前辈们相比只是知道些皮毛而已,但是想想谁不是从菜鸟过来的呢,所以我觉得还是写一些东西总结一下也算是个平台。我一直是在做WINCE的驱动不过WIN7出了之后看了一下感觉和CE的驱动其实也是大同小异,不一样的地方也比较好理解。甚至最近在看LINUX的东西的时候也没有觉得和WINDOWS的思路差好多,所以其实越到了底层操作系统之间的实现差距也就越小了。好了咱们言归正传,先看看什么是WDK,也就是Windows Driver Kit.这个是WINDOWS驱动开发平台。那么怎么获取这个开发工具呢。http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=36a2630f-5d56-43b5-b996-7633f2ec14ff在这个网址下载就是一个ISO文件。有关安装的过程会在后面介绍。这个工具支持以下的操作系统

Windows 7

Windows Server 2008 R2

Windows Server 2008 with Service Pack 1 (SP1)

Windows Vista with Service Pack 1 (SP1)

Windows XP with Service Pack 3 (SP3)

Windows Server 2003 with Service Pack 2 (SP2)

Windows XP Professional x64 Edition

可能细心的朋友会发现没有WIN2000了,没错的确是没有WIN2000了,原因很简单咱们后面章节会介绍的一个WINDOWS DRIVER的重要概念WDM模型,而WIN2000的驱动不是基于这个架构的。

好的说了很多的前言咱们来大概看一下看一下做一个驱动程序要有几步。

一 肯定是要了解DRIVER的需求:注意这个可是跟搞应用的需求不一样,因为驱动是连接硬件与软件的桥梁,那么操作系统对驱动程序的要求与支持都有哪些,硬件的特性又是怎么样的是如何连接在电脑上的怎么控制,能否即支持PNP,电源管理策略,你的驱动要支持哪些WINDOWS版本,多核与64位的支持要不要。这是第一步但也是最难的一步。

二 设计阶段:别以为驱动都是硬件相关的就不需要设计,首先选择模式(咱们后面会讲到)还有选择开发语言目前C++的驱动也很风声水起。

三 编码·调试·签名·测试 这三个放在一部分因为到了这个阶段一般来说编码并不太难(这个是驱动程序的特点),但是调试和签名相对来说都是和编码一样费事的工作。呵呵

四 分发 如果前面没有做好需求,这时候可能会出现一定全球化/本地化的问题。

我感觉大概的流程就是这些。一般来说驱动开发都采取敏捷开发的模式,迭代的方式比较少。

其实WIN7的驱动特性还是有比较多的更新的,比如说对于声音的驱动加了这个接口

IPortWMIRegistration 这个接口可以让MINIPORT的驱动向ETW进行注册了。
但是之所以不把它独立出来,是因为开始说这个太早了。其实简单的理解WIN7新特性就是对于多核及64位的支持了。

Windows 7驱动开发系列(一)--前言WIN7的新特性相关推荐

  1. Windows 7驱动开发系列(四)--WDM模型介绍

    有关WINDOWS DRIVER的模式还有一个很重要的概念就是WDM模型,一般来说内核模式的驱动都要遵守WDM(除了某些需要支持WIN2000的驱动以外)那么什么是WDM呢?它是一套规则: 1.需要在 ...

  2. Silverlight for Windows Phone 7开发系列(2):第一个Silverlight程序

    前言 上一篇讲述了Windows Phone 7开发环境的搭建,这篇文章讲述如何创建,部署,调试以及运行Silverlight for Windows Phone应用程序,同时介绍如何Microsof ...

  3. 九七的Windows内核驱动开发 WIN10-2004+VS2019+WDK驱动开发环境安装及配置

    WIN10-2004+VS2019+WDK驱动开发环境安装及配置 一.定义介绍   本节介绍如何在Windows10系统(2004版本,操作步骤中有如何查看版本)中安装VS2019及WDK开发包,并进 ...

  4. Redis系列(十四)、Redis6新特性之RESP3与客户端缓存(Client side caching)

    Redis6引入新的RESP3协议,并以此为基础加入了客户端缓存的新特性,在此特性下,大大提高了应用程序的响应速度,并降低了数据库的压力,本篇就带大家来看一下Redis6的新特性:客户端缓存. 目录 ...

  5. Windows的驱动开发模型

    在Windows的不同版本上开发的驱动程序"模型"(模型这个词语应该来源于单词"Mode".在Windows NT上,驱动程序被称为Kernel Driver ...

  6. windows xp 驱动开发(三)DDK与WDK WDM的区别

    转自: http://www.cnblogs.com/hyddd/archive/2009/03/15/1412684.html 最近尝试去了解WINDOWS下的驱动开发,现在总结一下最近看到的资料. ...

  7. Windows 10驱动开发入门(一):环境搭建

    驱动的开发对于初学者来说是不友好的,我们不知道怎么入手,从哪里入门.对于初学者来说束手无策,特别是碰到一个很简单的问题,都不知道怎么解决,这一系列的教程,就是用来排除这些障碍. 大部分的驱动开发教程都 ...

  8. Linux驱动开发系列:整理入门Ubuntu知识

    文章目录 Linux驱动开发 一.Linux驱动开发第一期:Ubuntu基础入门 1.Vmware虚拟机安装 2.Vmware内Ubuntu功能介绍 2.1 启动栏介绍 2.2 Ubuntu连接USB ...

  9. Windows 7程序开发系列之一(任务栏篇)

    Windows 7 引入了很多新特性,其中最直观的莫过于用户界面上的变化.很多人也因为不能适应这种变化而回到了XP.但是在我看来这些新的特性却是一种进步,使用了一段时间之后,也萌生了要做一点开发的冲动 ...

最新文章

  1. 小知识~LocalDB在IIS上如何成功配置
  2. SpringBoot集成Quartz(解决@Autowired空指针Null问题即依赖注入的属性为null)
  3. 【Android 安装包优化】WebP 图片转换 ( 使用 iSparta 转换 WebP 图片格式 | Google 提供的 libwebp 库 )
  4. SimpleUpdater.NET
  5. 量子计算入门-第一部分
  6. java转换为c#_将25k行C#转换为Java的经验教训
  7. ubuntu mysql 初始化_Ubuntu初始化MySQL碰到的坑
  8. B站2021品牌营销手册
  9. 数据库流行度9月排行榜:Oracle 的老骥伏枥和 MongoDB 逆风飞扬
  10. TdxAlertWindowManager右下角HINT显示控件
  11. Feign 简介与使用入门,请求、响应压缩,日志记录
  12. mysql详细教程大全
  13. 中国各主要大城市经纬度数据
  14. COMSOL流体操作
  15. IDM如何设置深色模式
  16. oracle共享池使用率,oracle调优之--共享池使用问题(摘自文平书)
  17. Java实现word导出与pdf导出
  18. 我的input /不可能这么可爱
  19. macd的python代码同花顺_手把手教你妙用MACD指标
  20. 数据库存储与文件存储

热门文章

  1. 部分智能推荐算法总结
  2. 我的世界服务器这么自动给东西,我的世界服务器教程如何发放福利 服主必看教程...
  3. UPC2021个人训练赛第39场 C: 粉兔找妹子(换根dp)
  4. php detailview,Yii2.0小部件 DetailView
  5. 阻止Adobe Dreamweaver CS5官方序列号验证
  6. Ericsson移动网络研讨会报告
  7. win10卸载 oracle 11g,win10 oracle11g彻底删除并重装教程
  8. 奋斗吧,程序员——第三十五章 莫愁前路无知己,天下谁人不识君
  9. 上航福州到上海航班改降虹桥机场
  10. 真假vmlinux--由vmlinux.bin揭开的秘密