Windows驱动开发

最近看Windows内核编程在这里做下记录。

第一章都是一些基本概念没有什么需要记录的。

第二章

开发一个简单的驱动所需要的准备工作:

1、开发环境准备:

操作系统:win11

IDE:vs2022(所有的vs2022版本都行),组件安装”使用c++的桌面开发“

安装Windows SDK和WDK

安装以后vs2022创建项目时依然没有”Empty WDM Driver“,需要运行”x:\xxx\Windows Kits\10\Vsix\VS2022\10.0.26100.1\WDK.vsix“以后才能创建驱动开发项目。

驱动开发所需的工具下载地址:

Sysinternals - Sysinternals | Microsoft Learn

2、调试驱动的虚拟机系统的准备

驱动是内核程序,对系统的影响是全局的,所以不能在真机上进行调试,搞崩了后果自负。

搞个VMware装个win10进行调试,把win10设置为测试模式,不然下面的命令没办法运行(因为驱动没有签名),设置命令如下:

bcdedit /set testsigning on

编译出来的驱动文件(*.sys)用sc.exe进行安装,安装、启动、卸载的命令如下:

sc create WindowsDriverDevelop type= kernel binPath= c:\WindowsDriverDevelop.sys

(注意在type和等号之间没有空格,而等号和kernel之间有空格,后面那个也一样。)

sc start WindowsDriverDevelop
sc stop WindowsDriverDevelop

驱动开发调试跟踪:

需要DebugView.exe输出代码中的调试信息需要修改虚拟机系统注册表才能看到调试信息,修改的位置:HKLM\SYSTEM\CurrentControlSet\Control\Session Manager下面增加一个叫作Debug Print Filter的项(这个项通常不存在)。在这个新建的项里,增加一个叫作DEFAULT的DWORD值,并置其值为8,重启后生效。

相关推荐

  1. Windows驱动开发

    2024-07-12 06:40:04       26 阅读
  2. windows驱动开发-I/O请求(三)

    2024-07-12 06:40:04       28 阅读
  3. windows驱动开发-I/O请求(一)

    2024-07-12 06:40:04       25 阅读
  4. windows驱动开发-I/O请求(二)

    2024-07-12 06:40:04       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 06:40:04       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 06:40:04       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 06:40:04       57 阅读
  4. Python语言-面向对象

    2024-07-12 06:40:04       68 阅读

热门阅读

  1. [linux] git push时需要输入user 和keyword

    2024-07-12 06:40:04       21 阅读
  2. 【AIGC】GPT-4深度解析:自然语言处理的新纪元

    2024-07-12 06:40:04       22 阅读
  3. PyTorch中的CPU和GPU代码实现详解

    2024-07-12 06:40:04       24 阅读
  4. CSS实现从上往下过渡效果

    2024-07-12 06:40:04       27 阅读
  5. 力扣第228题“汇总区间”

    2024-07-12 06:40:04       22 阅读
  6. vue2修改组件样式

    2024-07-12 06:40:04       22 阅读
  7. MongoDB:基础语句及练习

    2024-07-12 06:40:04       26 阅读