驱动

计算机的外部设备需要和计算机交换数据。

生产外部设备的厂家通过驱动程序,使计算机和厂家自己生产的设备交换数据,早期的Win9x设备驱动是vxd,Win NT是kdm,Win2k 统一发展成wdm模式。

inf文件

inf文件是安装设备驱动程序时必须使用的文件,其扩展名为 .inf,驱动程序安装后保存在windows/inf目录中。 系统使用一个扩展名为INF的文本文件来控制与安装驱动程序相关的大部分活动。INF文件应该由驱动程序开发人员随驱动程序一起提供。通过INF文件可以告诉操作系统哪一个文件需要复制到用户硬盘上,应该增加或修改哪一个注册表项,如此等等。

inf中提供产品设备的产品id,以及对应的sys文件名,驱动class名,class guid,。

sys文件

sys文件是驱动程序的可执行代码,其扩展名为.sys。sys文件用于存储设备驱动程序和其他核心的Windows功能。

驱动程序安装后保存在C:\Windows\System32\drivers目录中。
对于PnP设备,在设备插入后,sys文件会被windows装载到内存中,系统线程,调用sys中的函数来和设备进行通信。


sys是system的缩写,就是系统的意思,sys是Windows的系统文件。

如安装文件,日志文件,驱动文件,备份文件,操作如播放等文件,还有些垃圾文件等诸如此类。 都是这类sys后缀名的。

把我们编译好的 *.sys 文件拷贝到系统的驱动程序目录下C:\WINDOWS\system32\drivers,然后重新启动操作系统,这个驱动就可以在启动的时候被加载了。  安装debugview这个软件,它是简单好用的驱动调试工具 ,它可以显示DbgPrint打印出来的log。要选择debugview的capture菜单里面的log  boot,可以buffer操作系统boot的时候的log。

sys 文件安装

如何安装.sys驱动文件

  1. 将SYS驱动文件放到系统目录的SYSTEM32目录中。
  2. 按WIN+R组合键,在运行框中输入:regsvr32 sys所在全路径,点击确定即可。

在网上下载个免费的驱动安装工具,一般调试用的驱动,建议在安装的时候,千万记得要选择手动模式,因为自启动  ,如果驱动有BUG ,会导致蓝屏,重启机器后,驱动因自启动又被加载,导致再次蓝屏。

调试

在微软官网下 windbg ,但 windbg 需要调试机和被调试机模式,因此 windbg 最好配合 vmware 来使用。我感觉,sys 文件编译是很麻烦的。不如编译应用程序,只要一个 VS 可以搞定大部分的事情。驱动开发需要很多关于其他工具的知识。譬如,用记事本或者NOTEPAD++编辑源代码感觉很吃力,因为 VS 没有驱动开发的项目,因此 VS 不直接支持驱动开发,当然,可以进行配置,但 VS 配置驱动是很麻烦的。另外, windbg 有很多的调试命令,当然常规的命令一般4、5个就够用了。VMWARE 的配置也是很麻烦的,当初,我自己研究了很长时间,网上虽然有教程,但都是讲得不全面,譬如要配置10个地方,网上都是只说7、8个,导致 VMWARE 配置不成功。驱动开发还有 DRIVER STUDIO 这么一个 IDE 可以使用,另外还有 IRPTRACE ,DEVICE TREE , DEBUG VIEWER 等工具。我开发驱动的工具是 VMWARE + VS2010 + WDK + WINDBG + WINOBJ + IRPTRACE + DEBUG VIEWER 这几个。

windows驱动开发——使用sys文件相关推荐

  1. Windows驱动开发学习笔记(五)—— SSDT HOOK

    Windows驱动开发学习笔记(五)-- SSDT HOOK 系统服务表 系统服务描述符表 实验一:通过代码获取SSDT表地址 通过页表基址修改页属性 方法1:修改页属性 方法2:修改CR0寄存器 实 ...

  2. Windows驱动开发学习笔记(三)—— 内核空间内核模块

    Windows驱动开发学习笔记(三)-- 内核空间&内核模块 内核空间 实验 第一步:编译如下代码 第二步:将 .sys 文件拷贝到虚拟机中 第三步:部署 .sys 文件并运行 第四步:创建一 ...

  3. Windows驱动开发学习笔记(二)—— 驱动调试内核编程基础

    Windows驱动开发学习笔记(二)-- 驱动调试&内核编程基础 基础知识 驱动调试 PDB(Program Debug Database) WinDbg 加载 PDB 实验:调试 .sys ...

  4. Windows编程—Windows驱动开发环境搭建

    文章目录 前言 步骤 步骤一 步骤二 步骤三 连接测试 步骤四 步骤五 总结 前言 作为一个编写Windows程序的开发人员,对Windows驱动开发 并非必需要掌握,但是掌握 Windows驱动开发 ...

  5. 15、Windows驱动开发技术详解笔记(11) 基本概念

    9.Windows驱动程序的入口函数规定为_DriverEntry@8,所以用C++编写时要用extern. 驱动程序中,不能使用编译器运行时函数,甚至C语言中的malloc,C++的new函数都不能 ...

  6. 客户端开发 Windows驱动开发(1)SDK WDK DDK WDM的关系

    尽管Windows平台的SDK.DDK与WDK都包含了WinDBG工具包,但是用户获取WinDBG工具包的最主要方式还是从微软网站自由下载,因为这样获得的版本最新. 最近因为工作需要,尝试去了解WIN ...

  7. 《Windows驱动开发技术详解》学习笔记

    Abstract   如果推荐 Windows 驱动开发的入门书,我强烈推荐<Windows驱动开发技术详解>.但是由于成书的时间较早,该书中提到的很多工具和环境都已不可用或找不到,而本文 ...

  8. windows驱动开发环境搭建以及helloworld

    文章目录 前言 编译环境-WDK的安装 搭建测试驱动的虚拟机 win11虚拟机 win10虚拟机 在测试机器上运行驱动 修改注册表-显示调试信息 上面驱动代码含义 测试证书签名 其他 旧版本的visu ...

  9. Windows驱动开发环境搭建:VS2013+WDK8.1

    你的Windows驱动开发环境之所以搭建不成功,是因为你没有看这篇博客 1.安装包准备 Visio Studio2013: https://pan.baidu.com/s/1P77yeSKuE7mWl ...

  10. 转:Windows驱动开发(中间层)

    Windows驱动开发(中间层) - 慧由心生 - 博客园Windows驱动开发一.前言依据<Windows内核安全与驱动开发>及MSDN等网络质料进行学习开发.二.初步环境1.下载安装W ...

最新文章

  1. 手把手,教你怎样用命令行给apk签名
  2. 全数字FM接收机2---仿真
  3. java同步锁如何使用_java 同步锁(synchronized)的正确使用姿势
  4. DEDEv5.6跳转网址修改成直链地址而非动态跳转
  5. 自动驾驶感知系统(图)侵删
  6. 转 点击关闭时最小化到任务栏
  7. Windows核心编程_Visual Studio2019找不到MFC项目
  8. F - Restoring the Expression CodeForces - 898F
  9. FlexPaper — 可以用来仿豆丁网、百度文库的PDF在线阅读功能
  10. 生成pdf设置中文字体出错 \simsun.ttc' with 'Identity-H' is not recognized或者type of font{0} is not recognized
  11. css代码body>*是什么意思
  12. 继电器模块典型电路图
  13. DataGrid 嵌套应用
  14. 『Android基础入门』:EventBus实现总线数据分发
  15. 这里告诉你如何计算算法的时间复杂度(大O阶)
  16. 无线MESH自组网系统
  17. vbs恶搞小程序速成
  18. HTML浏览器解析位置错误,各浏览器对CSS错误解析规则的差异及CSS hack.pdf
  19. Java正则表达式之分组和替换
  20. linux系统及应用ppt下载地址,[计算机软件及应用]Linux操作系统.ppt

热门文章

  1. oracle查询怎样更效率,Oracle提高查询效率的方法
  2. Slf4j+logback实现日志打印-获取调用者类及方法行数信息
  3. 正交试验法生成测试用例工具PICT
  4. qpython3手机版怎么运行不了_QPython3手机版
  5. api 接口管理工具
  6. 小程序切出去重新进入
  7. 宝塔面板无法卸载php,宝塔面板如何卸载
  8. 国际学术期刊排名按照姓氏字母排吗?
  9. C# 匿名函数_C# 匿名函数使用整理
  10. docker安装gamit_Ubuntu Linux下安装GAMIT