windows驱动开发——使用sys文件
驱动
计算机的外部设备需要和计算机交换数据。
生产外部设备的厂家通过驱动程序,使计算机和厂家自己生产的设备交换数据,早期的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驱动文件
- 将SYS驱动文件放到系统目录的SYSTEM32目录中。
- 按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文件相关推荐
- Windows驱动开发学习笔记(五)—— SSDT HOOK
Windows驱动开发学习笔记(五)-- SSDT HOOK 系统服务表 系统服务描述符表 实验一:通过代码获取SSDT表地址 通过页表基址修改页属性 方法1:修改页属性 方法2:修改CR0寄存器 实 ...
- Windows驱动开发学习笔记(三)—— 内核空间内核模块
Windows驱动开发学习笔记(三)-- 内核空间&内核模块 内核空间 实验 第一步:编译如下代码 第二步:将 .sys 文件拷贝到虚拟机中 第三步:部署 .sys 文件并运行 第四步:创建一 ...
- Windows驱动开发学习笔记(二)—— 驱动调试内核编程基础
Windows驱动开发学习笔记(二)-- 驱动调试&内核编程基础 基础知识 驱动调试 PDB(Program Debug Database) WinDbg 加载 PDB 实验:调试 .sys ...
- Windows编程—Windows驱动开发环境搭建
文章目录 前言 步骤 步骤一 步骤二 步骤三 连接测试 步骤四 步骤五 总结 前言 作为一个编写Windows程序的开发人员,对Windows驱动开发 并非必需要掌握,但是掌握 Windows驱动开发 ...
- 15、Windows驱动开发技术详解笔记(11) 基本概念
9.Windows驱动程序的入口函数规定为_DriverEntry@8,所以用C++编写时要用extern. 驱动程序中,不能使用编译器运行时函数,甚至C语言中的malloc,C++的new函数都不能 ...
- 客户端开发 Windows驱动开发(1)SDK WDK DDK WDM的关系
尽管Windows平台的SDK.DDK与WDK都包含了WinDBG工具包,但是用户获取WinDBG工具包的最主要方式还是从微软网站自由下载,因为这样获得的版本最新. 最近因为工作需要,尝试去了解WIN ...
- 《Windows驱动开发技术详解》学习笔记
Abstract 如果推荐 Windows 驱动开发的入门书,我强烈推荐<Windows驱动开发技术详解>.但是由于成书的时间较早,该书中提到的很多工具和环境都已不可用或找不到,而本文 ...
- windows驱动开发环境搭建以及helloworld
文章目录 前言 编译环境-WDK的安装 搭建测试驱动的虚拟机 win11虚拟机 win10虚拟机 在测试机器上运行驱动 修改注册表-显示调试信息 上面驱动代码含义 测试证书签名 其他 旧版本的visu ...
- Windows驱动开发环境搭建:VS2013+WDK8.1
你的Windows驱动开发环境之所以搭建不成功,是因为你没有看这篇博客 1.安装包准备 Visio Studio2013: https://pan.baidu.com/s/1P77yeSKuE7mWl ...
- 转:Windows驱动开发(中间层)
Windows驱动开发(中间层) - 慧由心生 - 博客园Windows驱动开发一.前言依据<Windows内核安全与驱动开发>及MSDN等网络质料进行学习开发.二.初步环境1.下载安装W ...
最新文章
- 手把手,教你怎样用命令行给apk签名
- 全数字FM接收机2---仿真
- java同步锁如何使用_java 同步锁(synchronized)的正确使用姿势
- DEDEv5.6跳转网址修改成直链地址而非动态跳转
- 自动驾驶感知系统(图)侵删
- 转 点击关闭时最小化到任务栏
- Windows核心编程_Visual Studio2019找不到MFC项目
- F - Restoring the Expression CodeForces - 898F
- FlexPaper — 可以用来仿豆丁网、百度文库的PDF在线阅读功能
- 生成pdf设置中文字体出错 \simsun.ttc' with 'Identity-H' is not recognized或者type of font{0} is not recognized
- css代码body>*是什么意思
- 继电器模块典型电路图
- DataGrid 嵌套应用
- 『Android基础入门』:EventBus实现总线数据分发
- 这里告诉你如何计算算法的时间复杂度(大O阶)
- 无线MESH自组网系统
- vbs恶搞小程序速成
- HTML浏览器解析位置错误,各浏览器对CSS错误解析规则的差异及CSS hack.pdf
- Java正则表达式之分组和替换
- linux系统及应用ppt下载地址,[计算机软件及应用]Linux操作系统.ppt