-
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+WDK10
2020-03-12 17:22:10Windows10驱动开发环境 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 集成正常工作。
安装完成后,在你安装的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文件
-
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 配置下载缓存路径, ...作者
QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页https://space.bilibili.com/208826118
下载安装包
微软官网下载安装包,然后下载vs2017离线安装包,网上说先安装证书,我忘记了,但是也没有问题,我是win7 x64,应该是我已经有了这些证书。
D:\vs_enterprise__111975078.1529511260.exe --layout D:\vs2017 --lang zh-CN en-US
双击离线目录setup.exe安装vs2017,选择C++桌面开发。
配置下载缓存路径,
安装完成之后到帮助菜单里注册。
Visual Studio 2017 Enterprise NJVYC-BMHX2-G77MM-4XJMR-6Q8QF
Visual Studio 2017 Professional KBJFW-NXHK6-W4WJM-CRMQB-G3CDH
官网下载WDK10或EWDK10,按默认安装。配置Git
由于我这里用了外部方法建了Git,所以这儿点击添加,来配置Git。
从vs代码编辑窗口的底部有Git的提交等信息。
项目设置
设置项目属性,设置输出可执行文件,
设置头文件路径,
设置库路径,
设置依赖:同一个解决方案放下有很多项目,这里可以在解决方案资源管理器空白处,右键菜单->添加->新建解决方案文件夹,对项目进行分类管理。
如果有一个应用调用另一个库工程,这时候需要到工程属性中配置附加包含目录和附加链接库,vs提供了一个快捷方式建立项目依赖,简化配置过程,在项目引用里添加依赖的项目即可。
Wpp Tracing此处配置打开,否则编译不过。
其次配置Scan Configuration Data
以上针对Debug/Release建立通用配置,下面可新建解决方案配置,分别适配win10和win7等。
针对Win7驱动的特殊设置,这里只有Desktop类型,
WDF版本设置为1.11,
常见错误
编译错误,
Inf2Cat error -2: "Inf2Cat, signability test failed." Double click to see the tool output. Inf2Cat Tool Output: .......................... Signability test failed. Errors: 22.9.7: DriverVer set to a date in the future (postdated DriverVer not allowed) in xxxx.inf. Warnings: None
刚好时间到了凌晨出了错误,参考博客VS2012驱动项目时间戳验证失败,解决办法很简单,在项目属性里设置,
-
windows 驱动开发环境配置 小白求助
2017-03-08 02:54:53主系统是win10 ,虚拟机是VM 9,虚拟机系统是win7 64位,看了好多帖子关于环境配置的,但是没找到和我情况一样的,小白有点慌,所以我是应该配置vs2013+WDK8.1还是VS2015+WDK10 呢,这两个是安装到主系统么?... -
Windows驱动开发环境搭建(Visual Studio 2015 + WDK)
2017-07-22 15:12:08在Win10环境下开发Windows驱动程序需要依赖WDK,微软在”WDK7600“以后就不再提供独立的内核驱动开发包了,而是必须首先安装微软集成开发环境VisualStudio。本文将介绍如何在Win10环境下配置Visual Studio 2015 + ...在Win10环境下开发Windows驱动程序需要依赖WDK,微软在”WDK7600“以后就不再提供独立的内核驱动开发包了,而是必须首先安装微软集成开发环境VisualStudio。本文将介绍如何在Win10环境下配置Visual Studio 2015 + WDK开发环境。微软官网对于WDK的介绍如下:Windows 驱动程序工具包 (WDK) 与 Microsoft Visual Studio 和用于 Windows 的调试工具相集成。该集成环境给你提供了开发、构建、打包、部署、测试和调试驱动程序时所需的工具。 在集成的环境中,你可以运行各种基本的认证测试。WDK 包括多项技术和驱动程序模块的模板,其中包括 Windows 驱动程序框架 (WDF)、通用串行总线 (USB)、打印、网络和文件系统筛选器。安装过程如下:1、安装Visual Studio 2015,如下图所示,勾选Visual C++,确保Windows 10 SDK版本为15063(为与WDK版本保持一致),所以我的Visual Studio 2015低于该版本,因此安装该版本SDK,并在步骤2中独立安装。如果你的Visual Studio 2015安装包中集成的SDK为15063,勾选安装即可,并请跳过步骤2。
2、安装SDK从微软官网下载Windows SDK 10.0.15063 https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk可以选择下载exe或者iso,前者是一个下载工具,后者是SDK的镜像文件,两种方式均可。3、安装WDK从微软官网下载Windows WDK 10.0.15063
4、确认安装是否成功从控制面板的软件卸载界面可以看到WDK以及SDK对应版本已经安装成功。5、Visual Studio 2015中确认是否安装成功在创建工程界面可以看到有WDF项目
创建一个KMDF项目,可以编译成功,至此安装完成。
-
Windows驱动开发环境搭建之Hello World
2017-09-08 16:39:56WDK10按照书上的例子进行编写,只包含了类似下面 ntxxx.h 的头文件,都无法找着:#include #include ...第一反应是vs中的包含目录中没有驱动头文件的目录,其默认包含如下然而在对应的版本中并没有发现有对应的目录... -
Win10下VS2015(WDK10)驱动开发环境配置
2020-10-31 13:51:521、概述 微软在”WDK7600“以后就不再提供独立的内核...对于Windows 10和Visual Studio2015驱动开发WDK环境变量的配置,与其它版本的Windows和WDK环境的配置有很大不同。本人也是苦苦探索了近一周的时间才配好。... -
VS2019+WDK10驱动开发环境搭建
2020-11-27 00:09:32https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk 在你啥都不懂的时候,连搭建环境都是一件很头大的事,这篇文章主要是解读一下上面的...因为SDK(软件开发工具包)需要与WDK(驱动开发工 -
在windows10 下搭建 visual studio 2015 驱动程序开发环境
2017-05-04 15:09:38windwos10 VirtualBox visual studio 2015 windows SDK windows WDK -
Visual studio 2015 community + Windows Driver Kit 10 +Vmware 11 配置驱动开发环境
2015-08-10 15:41:40为何选择visual studio community作为开发环境:从微软官网的关于visual studio community的介绍可知,visual studio community是一款功能强大并且免费的集成开发环境。正好这功能强大和免费这两点完全符合本人需求,... -
windows7内核驱动开发试验环境配置
2017-01-05 18:51:00然后在win10里可能由于没有做测试签名因此一直没有成功加载驱动,换成win7后需要安装winddk7然后重启VS,项目属性->Driver Settings->Target OS Version切换到Windows 7 然后 Driver ... -
Win10下VS2019驱动开发环境搭建(一)
2021-01-05 00:23:41驱动开发环境搭建 平台:VS 2019 + Windows 10 -
WIN10 + VS2015 + WDK10 + SDK10 + VM虚拟机驱动开发调试环境搭建
2016-03-11 23:52:223 驱动开发工具:WDK10 4Windows SDK:SDK10(安装的时候必须全部勾选安装,否则编译会出现缺少waring.h等头文件之类的错误) 5 VM虚拟机:VMware WorkStation 12 Win10、WDK10、SDK10的版本必须一致我的用的都是... -
Windows驱动开发VS2012 DDK/WDK的环境配置
2016-02-19 00:45:29[开发Windows驱动的配置是很必要的,下文将详细介绍VS2012如何配置驱动开发环境][转载]以下部分内容是转载博客:http://blog.csdn.net/huangxy10/article/details/15284881[下载]微软官网下载WDK或者网上有DDK安装包... -
Windows驱动开发(一):环境搭建
2019-04-23 16:26:41一、安装开发工具 winxp、win7、win2003、win2008 安装 notepa++ win7、win8、win10、win2008 R2、win2016 安装 VS2015+WDK10 二、安装WDK ... -
Win10驱动开发之开发环境的搭建(一)
2019-01-17 00:11:23这次学习最后采用的开发环境如下: Windows : win10 64位 1809版本(Host计算机和测试计算机上相同) Visual Studio Community 2017 : 版本15.9.4 SDK : 10.0.17763.132 WDK : 10.0.17763.132 之前一个朋友... -
对win10驱动开发环境的理解(二)
2019-01-21 12:11:25所以在看到下面这个网页的入门教程时,心里感觉之前关于打印“HelloWorld”的想法是对的: ... Win10下的驱动模型是WDF,它又可以分为UMDF、KMDF两类。这三个例子,分别说明了这两类驱动的基... -
Windows驱动开发入门 -- HelloWorld
2019-03-13 09:34:11一、驱动开发环境搭建 在Download the Windows Driver Kit (WDK)页面中下载最新版本的Visual Studio和WDK进行安装。如果要下载老版本可以到Other WDK downloads下载。 本文演示环境为:Visual Studio 2017版本,WDK ... -
Windows驱动开发,环境搭建【Win10+VS2019+SDK (10.0.19041.0)+WDK (10.0.19041.0)】
2020-09-14 17:51:47Windows驱动开发,环境搭建,参考文章: https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk 步骤 1:安装 Visual Studio 2019 Visual Studio Community 2019下载地址: ... -
Win10驱动开发之开发环境的搭建(二)
2019-01-18 09:41:02由于是门外汉,曾经怀疑是windows版本的问题,所以把win10进行了升级,升级到了1809版本。 升级链接为: https://go.microsoft.com/fwlink/?LinkID=799445 或者进入microsoft网站: https://www.microsoft.com/... -
win10+vs2015+sdk+wdk驱动开发环境安装
2019-08-29 13:51:49安装了好多遍驱动开发环境都不成功,最终成功了一次。 win10 64位 vs2015 windows sdk 10.0.15版本 wdk 10.0.15版本 测试环境win7 64位 根据别人的教程尝试过多次vs2017不过都失败了,不知道为什么。 ... -
《Windows驱动开发技术详解》学习笔记
2019-02-13 17:34:19如果推荐 Windows 驱动开发的入门书,我强烈推荐《Windows驱动开发技术详解》。但是由于成书的时间较早,该书中提到的很多工具和环境都已不可用或找不到,而本文搜集了大部分的工具,并在 win10X64 上安装开发...
-
java利用swing界面实现数独程序.zip
-
access应用的3个开发实例
-
朱老师C++课程第3部分-3.6智能指针与STL查漏补缺
-
数据结构方阵.cpp
-
斗地主
-
51单片机条形码识别设计.rar
-
2021-02-28
-
LVS + Keepalived 实现 MySQL 负载均衡与高可用
-
图像质量评价(Image Quality Assessment,IQA)概述
-
利用java实现提现金额到支付宝账户的功能
-
2021-02-28
-
Liunx 优化思路与实操步骤
-
PHP项目开发案例全程实录.pdf
-
图形图像处理.docx
-
switch_case语句.zip百分制的成绩转化
-
物联网基础篇:快速玩转MQTT
-
牛牛量化策略交易
-
巧用VBA读取压缩包中文件信息
-
2021-02-28
-
龙芯生态应用开发基础:C语言精要