吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4476|回复: 5
上一主题 下一主题
收起左侧

[其他转载] 简单修改使WDK 22H2(VS2022)兼容旧版WDK10

  [复制链接]
跳转到指定楼层
楼主
jzw00101 发表于 2022-8-12 21:00 回帖奖励
本帖最后由 jzw00101 于 2022-8-12 21:04 编辑

VS2022 更新了众多功能和特性,如64位 IDE、MSVC v143等,然而该版本只支持最新版的 WDK(22H2/10.0.22621),新版本砍掉了众多编译支持(https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk)。为了在 VS2022 中更愉快地写驱动,并让它尽可能兼容旧工程的编译,我们可以对WDK做一些patch。。


修改前请注意备份!!


1. 支持32位以及 Win7~8.1 的 target

修改 C:\Program Files (x86)\Windows Kits\10\build\10.0.22621.0\WindowsDriver.Common.targets(假定WDK安装在64位系统的默认目录中)
搜索 '$(DDKPlatform)' == 'x86' or '$(DDKPlatform)' == 'ARM')
删除选中部分:


2. 取消 ExAllocatePool、ExAllocatePoolWithTag 等函数的警告

修改 C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\km\wdm.h
搜索 use ExAllocatePool2
删除 __declspec(deprecated(xxx)) 和 __drv_preferredFunction(xxx),如:


3. 解决默认编译输出在 Win7 下加载蓝屏

    1. 修改 Target OS Version 为 Windows 7

    2. 删除 C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0\km\x64\bufferoverflowfastfailk.lib,复制一份同目录下的 BufferOverflowK.lib 并重命名为 bufferoverflowfastfailk.lib

    3. 关闭栈保护(不推荐):工程属性 > C/C++ > Code Generation > Security Check > Disable

根本原因:

默认生成的代码中 security_init_cookie 不负责初始化 security cookie,而Win7的加载器还不支持初始化 security cookie,从而导致蓝屏。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
LanXing77 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
iawyxkdn8 发表于 2022-8-13 09:04
谢谢分享!
3#
276585877 发表于 2022-8-30 10:08
4#
virsnow 发表于 2022-10-3 16:13
5#
丢你雷姆加拉姆 发表于 2022-11-21 00:46
谢谢大佬成功解决了win7蓝屏  但是win11又加载不了驱动了为啥
6#
Amreankerboy 发表于 2024-1-26 01:07
老哥可以发一份修改后wdm文件吗,我改完有更多错误了
7#
coody 发表于 2024-3-13 14:37
有个完整版的下载地址ma?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 15:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表