文章目录

  • 安装SDK和WDK
  • 创建项目
  • 编写程序
  • 其他工具

参考: 参考博客

安装SDK和WDK

我这里用的是VS2019。环境其实是早就配好了,只不过写一下而已。后来VS2019不能被visual studio installer识别,又要装新东西,然后官网下了个vs下载器只有VS2022,想着要不干脆更新了吧,于是便重新配置了一遍,由于C盘紧缺,就把VS2019给完全卸载了。谁想,VS2022不再支持win10的WDK(那个扩展装不了),而2022的WDK驱动根本没有x86版本的,搞来搞去。
好吧,又重新装了VS2019,从零开始

友情提示:版本不是越新越好的

安装器里把这个勾上,如果你安装了某个套餐,应该会有个SDK对应的版本,那么就不用装了


WDK安装链接

点击第一项,下完居然还是10.19041.1,有点神奇

最后,VS20xx不重要,装哪个都不重要,重要的是记得把SDK和WDK版本对应上


装完WDK后提示是否安装VS2019扩展程序,点击安装即可
没弹窗也没关系,动手找一下


双击这个文件,安装即可
(如果你没有用默认安装位置的话,那就自己想想放哪了吧,实在不行就使用右上角的搜索)


创建项目

新建一个 Kernel Mode Driver, empty (KMDF) 的项目

名字随便起起就行


先新建一个xxx.c文件,千万不要xxx.cpp

右键==>属性,那个菜单太长了,不截图了





如果报错说:此项目需要缓解了 Spectre 漏洞的库
那么请勾选 Disabled

如果你非要折腾,那么请移步vs安装器里找一个对应版本的缓解库装上,反正我装了好几个没对上版本,懒得弄了

编写程序

//相当于普通程序的 windows.h
#include <ntddk.h>//卸载函数
void DriverUnload(PDRIVER_OBJECT object) {//打印一句话,方便观察DbgPrint("hello world: driver is unloading...");
}//主函数,相当于main
//driver里有些信息,就是关于本驱动的
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path) {//驱动使用DbgPrint(),普通程序用printf(),你懂我意思DbgPrint("hello world");//你可以认为我们赋值给了一个回调函数指针//恰当的时机(在卸载这个驱动的时候),就会调用这个函数指针driver->DriverUnload = DriverUnload;//就是return 0而已,只是好看点return STATUS_SUCCESS;
}

编译,然后拉到winxp里试试
dbgView我也勾选了监视核心,但是时灵时不灵的,就不献丑了
反正不灵的时候windbg也会打印的
我勾选了监视核心,但是俩都没打印,着实怪异


其他工具

有个双机调试工具叫做VirtualKD-Reduxz,比windbg裸连快很多,github上就有,直接搜就完事了
安装教程和使用教程也有的,傻瓜式操作,就不细说了
如果配置的时候出了问题,可以参考一下我之前写的
Virtual KD 出现 Still cannot find RPC dispatcher table


好久没更新了,没人看,没动力了。就写给自己看吧

(14)[驱动开发]配置环境 VS2019 + WDK10 写 xp驱动相关推荐

  1. linux设备驱动开发之环境搭建(基于exynos4412)

    第一章 linux设备驱动开发之环境搭建(基于exynos4412) 目录 第一章 linux设备驱动开发之环境搭建(基于exynos4412) 1.搭建开发板运行环境 1.1.交叉开发模式 安装交叉 ...

  2. VS2019+WDK10编写xp平台的驱动

    VS2019+WDK10编写xp平台的驱动 之前自己在网上找了一堆教程,各种配置一大堆都没有成功,但是都没成功. 如何配置直接贴张图,其实非常非常简单.

  3. Python基于vs2013开发配置环境出错unsupported python version 3.7解决方案

    Python基于vs2013开发配置环境出错 unsupported python version 3.7解决方案 前提:vs2013+vs2013插件+python 可能网友们在安装完成之后,打开v ...

  4. 【驱动开发】WinDbg 双机调试 Windows XP

    起序:最近学习驱动开发,环境搭建,记录一下. 一.软件环境 宿主机:Windows 10 虚拟机:VMware Workstation 16.1.1 Pro 系统:windows_xp_profess ...

  5. STM32MP157驱动开发——Linux自带的LED灯驱动

    STM32MP157驱动开发--Linux自带的LED灯驱动 0.前言 一.Linux 内核自带 LED 驱动使能 二.驱动简介 1.LED灯驱动框架分析 2.module_platform_driv ...

  6. linux驱动开发篇(三)—— 总线设备驱动模型

    linux系列目录: linux基础篇(一)--GCC和Makefile编译过程 linux基础篇(二)--静态和动态链接 ARM裸机篇(一)--i.MX6ULL介绍 ARM裸机篇(二)--i.MX6 ...

  7. WIN10 + VS2015 + WDK10 + SDK10 + VM虚拟机驱动开发调试环境搭建

    为什么80%的码农都做不了架构师?>>>    一.准备工作 1 系统环境:Win10系统 2 开发工具:VS2015 3 驱动开发工具:WDK10 4 Windows SDK:SD ...

  8. JZ2440驱动开发之环境搭建

    作为Linux驱动开发的小白搭建整个开发环境是至关重要的一步,鄙人是从裸机程序直接跳转到驱动里面来的,裸机到驱动的衔接没怎么看,所以在刚开始驱动的时候搭环境遇到了大麻烦,不过还是在坚持中挺过来了,还得 ...

  9. Window XP驱动开发(二) 环境搭建(VS2008+WDK+DDKWzard)及示例源码分析

    郁闷,做了WCE嵌入式驱动这么久还没热身够,又被调到做window xp下的驱动开发.没办法.只能受令了. 现在就开始自己的学习之旅吧. 转载请标明是引用于 http://blog.csdn.net/ ...

最新文章

  1. python dpkt 解析 pcap 文件
  2. DOM编程中,提高程序运行速度需要注意的一些点
  3. TIMESTAMP 与 explicit_defaults_for_timestamp
  4. 一个简单的TCP服务器
  5. plpythonu_postgresql plpythonu例子
  6. 在switch语句中,case后的标号只能是什么?
  7. JS进阶之---函数,立即执行函数
  8. lottie-android: 【Android】开源动画库(Airbnb开源)
  9. MySQL-Proxy实现MySQL读写分离
  10. java 创建类带泛型_java-创建泛型类列表
  11. 人脸对齐(九)--SDM算法
  12. 第三十一章 与昔一何殊勇怯(一之全)
  13. 电脑开启热点手机显示不可上网
  14. iOS篇—plist文件
  15. 工业无线开关量信号传输器
  16. SecureCRT Home End键
  17. 程序物语(八):我心戚戚
  18. 分析亚洲手机游戏市场现状--中国篇、韩国篇以及日本篇
  19. 高通骁龙MSM8916核心板 ARM Cortex-A53 四核 中文资料
  20. 打包php程序为安装文件,zblogphp主题和插件怎么打包成.zba格式文件

热门文章

  1. JAVA学习:基础入门(下)
  2. P6857 梦中梦与不再有梦
  3. 在子域下安装Exchange服务器并批量生成用户为每一位用户建立邮箱
  4. 最佳 Maya 免费建模插件!
  5. excel使用vb选中指定单元格,到指定行的最后一行有数据的等行数的单元格区间(列等高复制)
  6. Activity启动过程源码流程梳理和解读
  7. Visual Studio 程序集
  8. java合并单元格边框不完整,java poi 合并单元格后边框问题
  9. MR21修改物料标准价
  10. s7五杀大数据英雄_S7入围赛战报:首个五杀!LYN击败GMB