-
2020-03-12 17:22:10
Windows10驱动开发环境
1、下载SDK
https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk
通用驱动demo:
https://github.com/microsoft/Windows-driver-samples
2、下载VS2019
https://visualstudio.microsoft.com/zh-hans/vs/
安装Visual Studio时,选择 “使用 C++ 的桌面开发” 工作负载
3、下载WDK
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk
安装WDK时将安装WDK Visual Studio扩展。必须完成此操作,才能使WDK VS 集成正常工作。
安装完成后,在你安装的WDK的文件夹下找到WDK.vsix,双击,便可将驱动模块加载进vs2019中。
4、打开VS2019
创建KMDF项目:
注意保存为.c文件
编写第一个驱动程序
#include <ntddk.h> #include <wdf.h> DRIVER_INITIALIZE DriverEntry; EVT_WDF_DRIVER_DEVICE_ADD KmdfHelloWorldEvtDeviceAdd; NTSTATUS DriverEntry( _In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath ) { // NTSTATUS variable to record success or failure NTSTATUS status = STATUS_SUCCESS; // Allocate the driver configuration object WDF_DRIVER_CONFIG config; // Print "Hello World" for DriverEntry KdPrintEx(( DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "KmdfHelloWorld: DriverEntry\n" )); // Initialize the driver configuration object to register the // entry point for the EvtDeviceAdd callback, KmdfHelloWorldEvtDeviceAdd WDF_DRIVER_CONFIG_INIT(&config, KmdfHelloWorldEvtDeviceAdd ); // Finally, create the driver object status = WdfDriverCreate(DriverObject, RegistryPath, WDF_NO_OBJECT_ATTRIBUTES, &config, WDF_NO_HANDLE ); return status; } NTSTATUS KmdfHelloWorldEvtDeviceAdd( _In_ WDFDRIVER Driver, _Inout_ PWDFDEVICE_INIT DeviceInit ) { // We're not using the driver object, // so we need to mark it as unreferenced UNREFERENCED_PARAMETER(Driver); NTSTATUS status; // Allocate the device object WDFDEVICE hDevice; // Print "Hello World" KdPrintEx(( DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "KmdfHelloWorld: KmdfHelloWorldEvtDeviceAdd\n" )); // Create the device object status = WdfDeviceCreate(&DeviceInit, WDF_NO_OBJECT_ATTRIBUTES, &hDevice ); return status; }
生成驱动程序
在生成驱动的过程中可能会出现这样的错误:
禁用Spectre缓解即可,(当然,也可以下载Spectre库,我没有成功【捂脸】)!
生成驱动文件和pdb文件
更多相关内容 -
windows10 驱动开发环境 VS2019+WDK10
2019-06-04 09:30:38windows10 驱动开发环境 1、下载SDK https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk 通用驱动demo: https://github.com/microsoft/Windows-driver-samples 2、下载VS2019 ...windows10 驱动开发环境
1、下载SDK
https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk
通用驱动demo:
https://github.com/microsoft/Windows-driver-samples
2、下载VS2019
https://visualstudio.microsoft.com/zh-hans/vs/
安装 Visual Studio 时,选择“使用 C++ 的桌面开发” 工作负载
3、下载WDK
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk
安装 WDK 时将安装 WDK Visual Studio 扩展。 必须完成此操作,才能使 WDK VS 集成正常工作。
4、打开VS2019
新建KMDF项目:
编写第一个驱动程序代码
#include <ntddk.h> #include <wdf.h> DRIVER_INITIALIZE DriverEntry; EVT_WDF_DRIVER_DEVICE_ADD KmdfHelloWorldEvtDeviceAdd; NTSTATUS DriverEntry( _In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath ) { // NTSTATUS variable to record success or failure NTSTATUS status = STATUS_SUCCESS; // Allocate the driver configuration object WDF_DRIVER_CONFIG config; // Print "Hello World" for DriverEntry KdPrintEx(( DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "KmdfHelloWorld: DriverEntry\n" )); // Initialize the driver configuration object to register the // entry point for the EvtDeviceAdd callback, KmdfHelloWorldEvtDeviceAdd WDF_DRIVER_CONFIG_INIT(&config, KmdfHelloWorldEvtDeviceAdd ); // Finally, create the driver object status = WdfDriverCreate(DriverObject, RegistryPath, WDF_NO_OBJECT_ATTRIBUTES, &config, WDF_NO_HANDLE ); return status; } NTSTATUS KmdfHelloWorldEvtDeviceAdd( _In_ WDFDRIVER Driver, _Inout_ PWDFDEVICE_INIT DeviceInit ) { // We're not using the driver object, // so we need to mark it as unreferenced UNREFERENCED_PARAMETER(Driver); NTSTATUS status; // Allocate the device object WDFDEVICE hDevice; // Print "Hello World" KdPrintEx(( DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "KmdfHelloWorld: KmdfHelloWorldEvtDeviceAdd\n" )); // Create the device object status = WdfDeviceCreate(&DeviceInit, WDF_NO_OBJECT_ATTRIBUTES, &hDevice ); return status; }
生成驱动程序
SDK 版本原因,编译未通过。
解决方法1:重定向解决方案目标,选择正确版本。
不能选择...
解决方法2:
找到“使用C++的桌面开发”,勾掉左上角的勾选,然后再重新勾选上
取消勾选再选上,之后更新一下,再重试选择“重定解决方案目标”来更改 SDK 版本
还是不能选择...
解决方法3:
重新下个新的SDK
error MSB8040: Spectre-mitigated libraries are required for this project.
增加组件:可能还需要其他依赖库,将相关库都选择上。
编译成功。
- KmdfHelloWorld.sys - 内核模式驱动程序文件
- KmdfHelloWorld.inf - 在安装驱动程序时 Windows 使用的信息文件
- KmdfHelloWorld.cat - 安装程序验证驱动程序的测试签名所使用的目录文件
-
windows10 驱动开发环境搭建vs2019 helloworld
2022-01-03 17:28:13因为特殊原因需要搭建win10驱动环境, 因此学习了一下 但是发现win10环境特别麻烦 ...4 需要wdk Windows Driver Kit(Windows驱动程序工具包) 2 vs2019安装 选择c++ 桌面开发, 选择win10 sdk 10.0.因为特殊原因需要搭建win10驱动环境, 因此学习了一下 但是发现win10环境特别麻烦
vs2022已经出来了,但是没看到驱动支持, 因此还是选择vs2019
提前准备
1 查看系统版本
2 下载vs2019 社区版本
3 需要win10 sdk Software Development Kit(软件开发工具包)
4 需要wdk Windows Driver Kit(Windows驱动程序工具包)
2 vs2019安装
选择c++ 桌面开发, 选择win10 sdk 10.0.190441
3 安装wdm
选择2004版本安装
安装完之后,会选择安装vs插件. 点击安装完成之后就会出现驱动的选择
4 使用
选择KMDF
新建一个driver.c
#include <ntifs.h> VOID UnLoadDriver(PDRIVER_OBJECT pDriverObject) { KdPrint(("UnloadDriver success!")); } NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRegistryPath) { KdPrint(("%wZ", pRegistryPath)); pDriverObject->DriverUnload = UnLoadDriver; return STATUS_SUCCESS; }
最终的目录如图
然后开始配置工程: 工程上右键属性
禁止签名
inf2cat
到这里配置已经配置完了
右键生成
找到工程目录下有2个文件这就是我们需要的文件
2 部署
这里不建议用开发机来部署, 建议用vmware来部署
需要的工具有2个:
下载一个InstDrv.exe,用来加载驱动程序;
下载一个Dbgview.exe,用来显示驱动的log;1 重启虚拟机电脑进入到 禁止驱动程序强制签名
win10从设置里面进入
2 拷贝刚刚生成的两个文件到虚拟机
用admin权限打开Dbgview.exe程序,监控系统log;
进行一下配置:
开启Capture Kernel参考资料:
https://qwertwwwe.github.io/windows-driver-develop-setup-environment/
后面和测试机的配置如图:
Win10下VS2015(WDK10)驱动开发环境配置_Commander-CSDN博客_vs2015 windows 驱动
-
win10驱动开发
2022-04-13 18:15:47整体开发环境 win10 开发机 vmware 上的 win10 调试机 开发机环境 windows sdk: 版本 10.0.16299.0 wdk 版本10.0.16299.15 vs2017 vmware 16.2 测试机 windows sdk: 版本 10.0.16299.0 driver monitor 工具 ...整体开发环境
- win10 开发机
- vmware 上的 win10 调试机
开发机环境
- windows sdk: 版本 10.0.16299.0
- wdk 版本10.0.16299.15
- vs2017
- vmware 16.2
创建项目并编译
使用vs2017创建编译NT式驱动
- 使用vs2017不能直接创建nt式驱动的项目,我们这里创建一个空的wdm项目,如图:
- 在项目属性中选择windows sdk的版本为10.0.16299.0,如图:
- 关闭一些特殊的编译开关,如图:
- 编译后,会生成如下几个对象:
win10上测试NT式驱动
- 执行下面的命令, 使电脑进入测试模式,并重启电脑:
bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit /set testsigning on
-
安装测试证书,即
WDK_PRO_NT_HelloDDK.cer
,否则无法加载驱动.如图:
-
使用DriverMonitor加载驱动,如图:
-
点击,卸载驱动,虚拟机蓝屏,如图:
.
定位电脑蓝屏的原因
- 修改配置,以便在电脑蓝屏的时候生成dump
- dump文件在
C:\Windows\Minidump
或C:\Windows
下:
- 用windbg打开dump文件
-
Windows编程—Windows驱动开发环境搭建
2020-07-02 09:38:48文章目录前言步骤步骤一步骤二步骤三连接测试步骤四步骤五总结 前言 作为一个编写Windows程序的开发人员,对Windows驱动开发 ...开始学习Windows驱动开发,第一步当然是环境搭建了。因为笔者也在驱动环境搭建上也吃过 -
Windows 10 驱动开发 及 驱动签名
2022-03-25 10:33:33记录下在公司开发驱动的一些注意事项, 驱动当前仅针对win10x64 -
VS2019+WDK10+Win10 驱动开发环境
2021-03-20 10:50:38《VS2019+WDK10驱动开发环境搭建》 并在此做下记录 1、安装VS2019,这里选择安装的是社区版 工作负载这里,选择“使用C++的桌面开发” WDK:Windows Driver Kit(Windows驱动程序工具包) SDK: Software ... -
windows驱动开发2:驱动开发调试环境配置(WDK)
2022-04-29 18:39:41WDK编译及调试环境搭建 -
windows驱动开发环境搭建
2013-06-28 16:36:24文档描述windows驱动开发环境搭建的过程 -
Windows驱动开发环境搭建:VS2013+WDK8.1
2020-03-15 19:12:21尽管网上已经有很多帖子在介绍如何搭建Windows驱动开发环境,Jungle照着这些帖子仍旧折腾了很长时间。在终于搭建成功后记录下环境搭建过程,方便大家使用。 1.安装包准备 Visio Studio2013:... -
Windows内核安全与驱动开发
2018-10-27 11:00:31Windows内核安全与驱动开发(带书签):本书的前身是《天书夜读——从汇编语言到Windows内核编程》和《寒江独钓——Windows内核安全编程》。与Windows客户端安全软件开发相关的驱动程序开发是本书的主题。书中的程序... -
Windows 内核驱动开发环境 VS2019+WDK11
2021-09-22 11:06:58Windows 内核驱动开发环境 VS2019+WDK11 一、开发工具 Visual Studio 2019 安装 Windows 11 SDK (22000.1) https://go.microsoft.com/fwlink/?linkid=2166460 安装 Windows 11 WDK ...二、程序代码结构 ... -
Windows驱动开发环境搭建
2013-02-20 21:54:59Windows下驱动开发环境的搭建,资料大部分从网上收集,自己在搭建环境的过程中做了改进,方便初学者搭建wdm(wdk)开发环境。 -
Windows 驱动开发 新手入门(一)
2021-02-12 17:25:50Windows 驱动开发 新手入门(一)引言驱动介绍Win10 WDK建立一个驱动项目建立MyDriver.cpp理论知识驱动入口派遣函数 MajorFunctionDevice和SymbolicLinkDeviceExtensionIRP 引言 本文是对Windows下的驱动开发有一个... -
VS2019+WDK10驱动开发环境搭建
2020-11-27 00:09:32https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk 在你啥都不懂的时候,连搭建环境都是一件很头大的事,这篇文章主要是解读一下上面的...因为SDK(软件开发工具包)需要与WDK(驱动开发工 -
windows驱动开发-vs2017 WDK10开发环境搭建
2018-06-21 22:08:10微软官网下载安装包,然后下载vs2017离线安装包,双击离线目录setup.exe安装vs2017,选择C++桌面开发。 D:\vs_enterprise__111975078.1529511260.exe --layout D:\vs2017 --lang zh-CN en-US 配置下载缓存路径, ... -
VS2019 windows驱动开发环境配置
2019-08-12 17:15:02配置Windows驱动开发环境 VS2019 下载VS2019 下载链接 https://visualstudio.microsoft.com/zh-hans/downloads/ 选择你所需要的开发环境和配置 确认下载完后, 在你安装的WDK 的文件夹下选择 双击WDK.... -
驱动开发Windows11+VS2019环境配置
2021-08-15 14:58:48文章目录环境安装创建驱动MSB401: SignTask错误解决 环境安装 安装VS2019,下载地址:VS2019。安装时注意选中VC++桌面开发。...如果没有打开,在路径D:\Windows Kits\10\Vsix\VS2019下可找到,双击安装。 创建驱动 -
windows 驱动开发 示例全集(包含文档) +工具全集,支持Visual Studio
2017-02-11 10:20:31在Windows上,Windows DDK提供的开发环境是基于命令行的,操作起来极为不便,相信 进行过驱动程序开发的朋友一定对此深恶痛绝。另一方面,Visual Studio 6.0却给我们 提供了非常友好易用的集成环境,让我们有... -
Windows驱动开发环境搭建之Hello World
2017-09-08 16:39:56WDK10按照书上的例子进行编写,只包含了类似下面 ntxxx.h 的头文件,都无法找着:#include #include ...第一反应是vs中的包含目录中没有驱动头文件的目录,其默认包含如下然而在对应的版本中并没有发现有对应的目录... -
对win10驱动开发环境的理解(一)
2019-01-21 11:42:19一开始着手学习驱动开发时,就在想一个问题,如何在开发驱动过程中,首先用开发的驱动程序打印“Hello world”? 回想自己装机过程中,是怎么处理“驱动”的。以前还会想去查查自己电脑是什么配置,然后到对应网站... -
Windows驱动开发之驱动开发环境搭建
2016-07-05 06:42:06驱动开发环境搭建 -
win10驱动开发——驱动签名
2022-02-06 20:02:57win1803开始直接禁用驱动强制签名的方式不行了 1.设置环境 bcdedit -set NOINTEGRITYCHECKS ON...找到makecert.exe文件位置如【C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\makecert.exe】 没有的请 -
Windows驱动开发系列之一:小白入门经典
2020-09-05 18:24:57具体内容包括但不限于: Windows驱动开发小白入门,Windows内核架构与驱动开发的基本概念,VS2015+VMware(win10x64)双机调试驱动,Win10x64中安装WDM驱动,驱动程序的基本结构(NT,WDM),Windows内存管理,Windows... -
Windows驱动开发环境搭建(Visual Studio 2015 + WDK)
2017-07-22 15:12:08在Win10环境下开发Windows驱动程序需要依赖WDK,微软在”WDK7600“以后就不再提供独立的内核驱动开发包了,而是必须首先安装微软集成开发环境VisualStudio。本文将介绍如何在Win10环境下配置Visual Studio 2015 + ... -
Win10下VS2019驱动开发环境搭建(一)
2021-01-05 00:23:41驱动开发环境搭建 平台:VS 2019 + Windows 10 -
Windows驱动程序开发 - 初识驱动
2021-03-14 13:12:19搭建Windows驱动开发环境[2]. 第一个驱动程序[3]. 双机调试参考总结 什么是驱动程序? 驱动(Driver)可以简单理解为设备的操作程序,通常驱动是要符合操作系统规范的。 情景一:没有操作系统的情况(裸机) 应用通过... -
Windows下USB驱动开发入门小结
2018-08-20 11:01:06今年刚从学校毕业,来到公司后学了学画板子然后经理便给了我了一块板子,需要用到USB传输数据,让我学习一下Windows驱动程序开发并将这个USB驱动解决。当时一脸懵逼,便将开发板通过USB接口插上电脑后发现显示的未... -
Windows环境下USB驱动程序的开发
2009-11-20 14:52:39Windows环境下USB驱动程序的开发 -
在windows10 下搭建 visual studio 2015 驱动程序开发环境
2017-05-04 15:09:38windwos10 VirtualBox visual studio 2015 windows SDK windows WDK