(14)[驱动开发]配置环境 VS2019 + WDK10 写 xp驱动
文章目录
- 安装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驱动相关推荐
- linux设备驱动开发之环境搭建(基于exynos4412)
第一章 linux设备驱动开发之环境搭建(基于exynos4412) 目录 第一章 linux设备驱动开发之环境搭建(基于exynos4412) 1.搭建开发板运行环境 1.1.交叉开发模式 安装交叉 ...
- VS2019+WDK10编写xp平台的驱动
VS2019+WDK10编写xp平台的驱动 之前自己在网上找了一堆教程,各种配置一大堆都没有成功,但是都没成功. 如何配置直接贴张图,其实非常非常简单.
- Python基于vs2013开发配置环境出错unsupported python version 3.7解决方案
Python基于vs2013开发配置环境出错 unsupported python version 3.7解决方案 前提:vs2013+vs2013插件+python 可能网友们在安装完成之后,打开v ...
- 【驱动开发】WinDbg 双机调试 Windows XP
起序:最近学习驱动开发,环境搭建,记录一下. 一.软件环境 宿主机:Windows 10 虚拟机:VMware Workstation 16.1.1 Pro 系统:windows_xp_profess ...
- STM32MP157驱动开发——Linux自带的LED灯驱动
STM32MP157驱动开发--Linux自带的LED灯驱动 0.前言 一.Linux 内核自带 LED 驱动使能 二.驱动简介 1.LED灯驱动框架分析 2.module_platform_driv ...
- linux驱动开发篇(三)—— 总线设备驱动模型
linux系列目录: linux基础篇(一)--GCC和Makefile编译过程 linux基础篇(二)--静态和动态链接 ARM裸机篇(一)--i.MX6ULL介绍 ARM裸机篇(二)--i.MX6 ...
- WIN10 + VS2015 + WDK10 + SDK10 + VM虚拟机驱动开发调试环境搭建
为什么80%的码农都做不了架构师?>>> 一.准备工作 1 系统环境:Win10系统 2 开发工具:VS2015 3 驱动开发工具:WDK10 4 Windows SDK:SD ...
- JZ2440驱动开发之环境搭建
作为Linux驱动开发的小白搭建整个开发环境是至关重要的一步,鄙人是从裸机程序直接跳转到驱动里面来的,裸机到驱动的衔接没怎么看,所以在刚开始驱动的时候搭环境遇到了大麻烦,不过还是在坚持中挺过来了,还得 ...
- Window XP驱动开发(二) 环境搭建(VS2008+WDK+DDKWzard)及示例源码分析
郁闷,做了WCE嵌入式驱动这么久还没热身够,又被调到做window xp下的驱动开发.没办法.只能受令了. 现在就开始自己的学习之旅吧. 转载请标明是引用于 http://blog.csdn.net/ ...
最新文章
- python dpkt 解析 pcap 文件
- DOM编程中,提高程序运行速度需要注意的一些点
- TIMESTAMP 与 explicit_defaults_for_timestamp
- 一个简单的TCP服务器
- plpythonu_postgresql plpythonu例子
- 在switch语句中,case后的标号只能是什么?
- JS进阶之---函数,立即执行函数
- lottie-android: 【Android】开源动画库(Airbnb开源)
- MySQL-Proxy实现MySQL读写分离
- java 创建类带泛型_java-创建泛型类列表
- 人脸对齐(九)--SDM算法
- 第三十一章 与昔一何殊勇怯(一之全)
- 电脑开启热点手机显示不可上网
- iOS篇—plist文件
- 工业无线开关量信号传输器
- SecureCRT Home End键
- 程序物语(八):我心戚戚
- 分析亚洲手机游戏市场现状--中国篇、韩国篇以及日本篇
- 高通骁龙MSM8916核心板 ARM Cortex-A53 四核 中文资料
- 打包php程序为安装文件,zblogphp主题和插件怎么打包成.zba格式文件