准备开始window下的驱动开发了。

先转个文章热身热身,学前班。

DDK是什么,驱动是否都要用DDK写

DDK是什么,驱动是否都要用DDK写 收藏
DDK是Device Development Kit,设备开发包的意思。如果你想开发一个设备驱动程序,如显卡驱动程序,就必须使用DDK。DDK没有包括在VC++中,其主页为http://www.microsoft.com/whdc/devtools/ddk/default.mspx,通常需要定购MSDN才能获得。你也可以下载KMDF(http://www.microsoft.com/whdc/driver/WDF/KMDF_pkgdwn.mspx?),其中包括了Windows Server 2003 SP1的DDK。Windows 98的DDK可以从http://download.microsoft.com/download/win98SE/Install/Gold/W98/EN-US/98DDK.EXE下载。

驱动编写可以分多种情况,下面分别讨论:
    1、串口通讯。
    Windows自身带有串口通讯的API,所以一般串口通讯不需要编写单独的驱动程序,只需要调用系统功能就可以了。VB带有MSCOMM控件(QA000388 "MSComm无法在中文Windows 95下传递二进制数据"),而VC++可以参考QA000162 "在VC中如何开发串囗",Delphi可以参考QA002595 "在Delphi中怎样控制 Modem"。绝大多数串口外置的MODEM的驱动程序就是一个.inf文件(这个文件的规范在DDK中有说明),而没有实际的驱动文件。不过软猫不能使用这个办法。如果ISDN设备是通过串口的,也可以仿照MODEM编写这样的串口文件(当然如果要支持CAPI,就编写使用CAPI SDK编写驱动程序)。
    2、使用现成的驱动软件包。
    如果你的硬件是比较简单的数据采集卡这样的硬件,也可以使用一些现成的驱动软件包,这些软件包提供了一些基本的硬件操作功能,这样你可以免除使用DDK开发的苦恼。而且这些工具多数支持Delphi、VB、C++ Builder这样的软件,这样可以解决这些软件无法调用DDK编写驱动的问题。可以参考QA000335 "如何在VB中如何控制端口和物理地址"。这样的商业工具包括NTPort Library(http://china.zealsoft.com/cn/ntport/)、MemAccess Library(http://china.zealsoft.com/cn/memaccess/)、WinDriver等。
    3、使用DDK编写
    如果前两种情况都不适用,你就需要使用DDK编写了。每个Windows版本都有对应的DDK,其主页为http://www.microsoft.com/whdc/devtools/ddk/default.mspx,通常需要定购MSDN才能获得。你也可以下载KMDF(http://www.microsoft.com/whdc/driver/WDF/KMDF_pkgdwn.mspx?),其中包括了Windows Server 2003 SP1的DDK。Windows 98的DDK可以从http://download.microsoft.com/download/win98SE/Install/Gold/W98/EN-US/98DDK.EXE下载。。当然你应该根据自己使用的操作系统进行选择。Win9x的主要驱动都是VxD类型的,可以在Win95/98/Me下使用,但不能在WinNT/2000下使用。WinNT的驱动一般都是.sys文件,Win2000可以兼容WinNT驱动,但一般不能在Win9x下使用。所以如果你要支持Win9x和WinNT,需要编写两类驱动程序。USB设备的驱动程序是WDM类型的,扩展名为.sys,但只能在Win98/Me/2000下使用。
    Win98 DDK和Windows 2000的DDK安装比较简单,而且和VC++配合的比较好,最好使用这两个DDK包。Win95 DDK和WinNT DDK默认安装需要Win32 SDK,如果没有,需要手工修改环境变量或SETENV.BAT,略微麻烦一些,最好不使用。除了安装DDK,还需要VC++进行编译,最好是VC++ 6.0。其他软件都不是必须的。当然,最好有SoftICE作为调试工具。
    驱动的编写同一般程序有很大不同,所以建议买本书,参考QA001005 "有关DDK编程的书籍"。你也可以参考QA002697 "PCI设备Windows通用驱动程序设计",以了解一个大概。
    此外,也有一些DDK的增强工具,如DriverWorks(http://www.numega.com/),这个软件和DDK相比,就如同MFC和API。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jiazhen/archive/2006/12/07/1433360.aspx

DDK是什么,驱动是否都要用DDK写相关推荐

  1. 12门课100分,直博清华的学霸火了!“造假都不敢这么写”

    近日,一位数学系学霸的成绩单引发关注 >>>> 就是这份 12门课100分 还有多门99分98分的成绩单 各科成绩都很优秀 被网友称为"造假都不敢这么写的牛" ...

  2. Java 代码 各种不规范示范,希望引以为戒,望看到的大哥们 都能把代码写的规范点,方便你我他。

    前言: 总结,开发过程中的各种好习惯,不仅仅是写代码的时候,还有各种其他情况.都可以做的好一点. 一,代码各种规范优化 案例1(你猜) 这段代码暂时有如下三个问题: 1,代码注释不规范:类注释,变量注 ...

  3. mac用什么写python程序_macos,python_大家在mac系统都用什么编辑器写python程序?,macos,python - phpStudy...

    大家在mac系统都用什么编辑器写python程序? 大家在mac系统都用什么编辑器写python程序?为什么? 相关阅读: 安卓大部分浏览器播放HLS协议直播流会从头开始 Http Cache-Con ...

  4. 学计算机的普遍字写得都不好,国人普遍写不好汉字的原因探析

    汉字是我们进行交际的重要工具,写好规范汉字是国人应该具备的一项基本技能.书写规范得体的汉字,即能够准确地记载和传递信息,还能给阅读者创造一个情趣别致的审美意境.昔日,书写一手漂亮的汉字是令人羡慕的特长 ...

  5. 为什么多迪技术人员都喜欢用python写爬虫?

    有更加成熟的一种爬虫脚本语言,而非框架.是通用的爬虫软件ForeSpider,内部自带了一套爬虫脚本语言.很多同学学php的,但是也自学过python,对php了解还是比较深的,为什么多迪技术人员都喜 ...

  6. Windows驱动开发VXD/WDM/WDF/DDK/WDK的联系和区别

    背景介绍 首先,先从基础的东西说起,做任何程序的开发,你都需要一个配套的开发套件,专业术语叫做SDK(Software Development Kit,软件开发套件).比如:开发JAVA程序,我们可能 ...

  7. Oracle .NET Core Beta驱动已出,自己动手写EF Core Oracle

    使用.net core也有一段时间了,一直都没有Oracle官方的正式版驱动程序,更别说EF版本了.之前基于Oracle官方的.net core预览版本写了个Dapper的数据库操作实现,但是总感觉不 ...

  8. (14)[驱动开发]配置环境 VS2019 + WDK10 写 xp驱动

    文章目录 安装SDK和WDK 创建项目 编写程序 其他工具 参考: 参考博客 安装SDK和WDK 我这里用的是VS2019.环境其实是早就配好了,只不过写一下而已.后来VS2019不能被visual ...

  9. 中国到底有多少个.NET 程序员?都在哪个城市写代码?

    中国到底多少个.NET 程序员,对于这个问题,似乎没有一个准确的答案,而且最近很多使用.NET 开发技术的老板在抱怨找不到.NET 开发人员,所以我想基于我的公众号粉丝数据给大家分享下中国的.NET程 ...

  10. 遇到这个工具前我都是建议文章写好就先投Cell?

    写文章是个头疼的事情,写好了文章不知道投哪也是个头疼的事情. 最不费脑袋的方法是从Cell开始投,然后Nature, Science, Nature Biotechnology, -, Nature ...

最新文章

  1. R语言使用DALEX包的model_performance函数对caret包生成的多个算法模型进行残差分布分析并可视化每个模型的残差反向累积分布图
  2. Python3 基础语法(笔记2)
  3. 检测到目标主机可能存在缓慢的HTTP拒绝服务攻击
  4. 利用返回引用来操作结构体
  5. [课程复习] 数据结构之经典题目回顾 (一)选择题、填空题1
  6. Codeforces Round #108 (Div. 2)
  7. html的post和get请求参数,HTTP 方法:GET 对比 POST | w3cschool菜鸟教程
  8. Java夺命21连问!(附答案)
  9. thinkpad重装系统不引导_4个步骤,轻松解决电脑重装系统【蓝屏】
  10. matlab将图片旋转的代码_【MATLAB】钟表
  11. 记一次由PCI BAR配置不正确引发的硬盘IO调度io_schedule阻塞的经历
  12. 你技术很强但薪资不涨?这门技术远比你想的更重要!
  13. 蓝桥杯 ADV-148算法提高 排队打水问题(贪心)
  14. vbs脚本巡检windows主机
  15. Cortex-M3 (NXP LPC1788)之IIS控制器
  16. 中国象棋马走日(要求打印每一种走法) — 递归
  17. Mac 清理缓存命令
  18. Ubuntu18.04手动安装Realtek网卡驱动
  19. Tipask,Tipask建站,Tipask插件
  20. 工作态度决定了你的层次

热门文章

  1. 高通平台环境搭建,编译,系统引导流程分析
  2. 对于DEMATEL法的部分理解
  3. “从0开始的FreeRTOS”系列教程第一讲
  4. altium designer 常用元件封装
  5. Linux常用远程连接工具介绍,总有一款适合你
  6. oracle11g64位怎么用sql,Oracle11g64位下使用PLSQL
  7. opencv之图像二值化处理
  8. SQL Server根据地图坐标经纬度计算距离
  9. EXCEL 求解线性规划问题
  10. EXCEL 出错 8000401a