web虎所用2个64位驱动:到底在build时要生成几个版本?
更准确的问法是:
是否需要根据wdk+目标os不同,根据组合生成不同的多组驱动:
1.wdk10:生成windows10和windows2016+的驱动
2. wdk8和wdk8.1:生成windows8和windows8.1,window2012的驱动?
3. wdk7:生成win7/vista和win2008驱动?
分析:
wdk10版本驱动看来不可或缺,因为多个用户反映windows10不可用,而根据过往经验也确实需要重新build(windows xp/2003可用的-对应wdk6,不能用于windows7/2008-对应wdk7)
wdk8和wdk8.1版本驱动,同上。
wdk7版本驱动,也需要,因为需要更稳定。
背景:
1. 2010版驱动不可在win10、2012上运行,win7上不稳定
2. 新build的,binary compatibility待明确
目前结论:
看到wiki和 osr上都说,wdk1709版 可以支持到从win7sp1/2008R2开始的驱动开发,大喜:不用为每个wdk去build1个driver了,直接用该版wdk+指定target OS+target Platform就可一次build、到处运行(win7sp1以上);事实证明自己一厢情愿了:支持多个targetOS开发,并不意味着可build1个driver、在多个OS上跑。。当然因为咱们用到了wdm,所以每个驱动build时候,需要改动linker option:override the linker $(KernelBufferOverflowLib) ,这里详述:Building Drivers for Different Versions of Windows | Microsoft Docs。。
另外看到一篇文字,介绍怎样做才能让一个驱动同时可以跑在win7,8,8.1上(Building one driver for Win7, Win8, Win8.1 - MCCI Blog),但还没看到怎样能跑到win7开始的所有os上。。以后有空再研究
特别需要小心:文档上显示支持的driver版本少了2个win10的小build版本:1507和1511。。。这点挺奇怪的,待测试。
最终结果:
1.用wdk10对应toolset build出的虚拟盘driver,在win2012上可跑、win7上提示出错:cannot find ntoskrnl.exe keinitializeSpinLock;而该toolset build出的文件过滤驱动在win2012和win7上都可跑。
2.用wdk8.1对应toolset build出的虚拟盘driver,win7上可跑,但需要安装有vs2013的sdk,否则提示 cl.exe错误(msb6006) cl.exe exit with code 5...trk0005错误。。
步骤:
1. 卸载不用的sql之类(先腾空,随便一个升级就几个G), 这些不知道是否有用,但为保险只能先卸载了;保险起见,看了下win10系统还原点,有这些卸掉的
2. 搬走程序目录下vs12,vs11这些不用的 到U盘(后来需要vs2013 sdk,又搬回来了vs12。。)
相关信息:
0.参考链接:Windows Driver Kit - Wikipedia,WDK 1709 (aka 16299 aka RS3) Released! – OSR,What's new in the Windows ADK and ADK tools | Microsoft Docs,What's new in driver development | Microsoft Docs
1.能直接inplace更新sdk和wdk吗? 网上简单找了下:inplace upgrade wdk,无果。
2.sdk更新还要不?看来可能需要,wiki说的: A complete toolset for driver development also need the following: a compiler Visual Studio, Windows SDK, and Windows Hardware Certification Kit.
3.原来wdk的版本号跟windows版本号一致呢,另外还幻想windows更新会包括对应wdk更新、转念一想不对,这不一回事啊,所以还要自己单独下载wdk更新
4.要为wdk和sdk下载点个赞:飞快就把几个G文件下载下来了。。另外安装也没有所担心的额那么大,应该是覆盖了旧版的sdk和wdk。
web虎所用2个64位驱动:到底在build时要生成几个版本?的更多相关文章
- Visual Studio 2013 新增web项目IIS Express的64位版 转载来源http://www.cnblogs.com/jianyus/p/3524335.html
使用Visual Studio 2012开发SharePoint的应该都遇到过下面的错误“SharePoint 在32位进程中不受支持”,而怎么修改目标平台都不好使,因为VS 2012所配备的IIS ...
- Visual Studio 2013 新增web项目IIS Express的64位版
使用Visual Studio 2012开发SharePoint的应该都遇到过下面的错误“SharePoint 在32位进程中不受支持”,而怎么修改目标平台都不好使,因为VS 2012所配备的IIS ...
- Win64 驱动内核编程-24.64位驱动里内嵌汇编
64位驱动里内嵌汇编 讲道理64位驱动是不能直接内链汇编的,遇到这种问题,可以考虑直接把机器码拷贝到内存里,然后直接执行. 获得机器码的方式,可以写好代码之后,直接通过vs看反汇编,然后根据地址在看内 ...
- Win7 64位 + LoadRunner 11录制时弹不出IE的解决办法 Win7 64位 + LoadRunner 11录制时弹不出IE的解决办法
Win7 64位 + LoadRunner 11录制时弹不出IE的解决办法 Win7 64位 + LoadRunner 11录制时弹不出IE的解决办法 1. 卸载IE9( 装了Win7 64位后,默认 ...
- windows10(64位)Anaconda3+Python3.6搭建Tensorflow(cpu版本)及keras
转自:windows10(64位)Anaconda3+Python3.6搭建Tensorflow(cpu版本)及keras 1.本来电脑安装的是anaconda3 5.3.1,但安装的python版本 ...
- 一个伟大的发现,装X一下。笔记本win7系统64位机器执行unity 时,屏幕模糊解决的方法
笔者笔记本win7系统64位机器执行unity 时.往往切换时unity界面屏幕模糊,后来发现此时须要下载DirectXRuntimes201006x64,安装就可以.
- 南天PR2、PR2E驱动下载,xp,win7,win8,win8.1,win10 32位64位驱动下载安装教程
家里开淘宝店,有个针式打印机驱动.电脑各种换系统,为了装这个驱动可是废了不小的劲.不敢独享,所以现在把各种驱动以及安装教程分享出来. 注意: 打印机在开机状态下,电脑在开机状态下,不要插拔连接线!!! ...
- Squid代理服务器(一)——大家所用的游戏代理软件到底为何物?
一.代理服务器应用场景分析 想当年大学时候宿舍控制网速,苦了我们这帮魔兽党,一到晚上工会活动我们就得和全校上万名学生抢网速,作为坦克的我总是因为网速问题导致团灭,咱也是有自尊的人,一怒之下花300元办 ...
- DDK编写64位驱动时加入x64汇编的方法
上篇讲了如何在编写x64应用程序时加入x64汇编,这里来说说如何在编写x64驱动时加入x64汇编. 一.在asm文件中单独编写功能函数 比如要实现一个64位的加法函数,原型如下: ULONG64 my ...
随机推荐
- CocoaPods管理第三方
之前听伟哥说用CocoaPods做第三方库的管理很方便,今天看了下自己做了下感觉确实不错.下面开始,Let's go!! 1.安装CocoaPods之前,先确保本地有Ruby环境,因为CocoaPod ...
- bootstrap table分页,重新数据查询时页码为当前页问题
问题描述: 使用bootstrap table时遇到一个小问题,第一次查询数据未5页,翻页到第5页后,选中条件再次查询数据时,传到后端页码仍旧为5,而此时数据量小于5页,表格显示为未查询到数据. 处理 ...
- JPA之@OneToMany、@ManyToOne、@JoinColumn
顾名思义,@OneToMany.@ManyToOne这两个注解就是处理一对多,多对一的关系 这两个注解是成双成对的,有了@OneToMany,一定会配置一个@ManyToOne OneToMany设置 ...
- 【模板】Bellman—Fort 单源最短路径算法
2333 适用于边集储存 #include<bits/stdc++.h> using namespace std; const int inf=0x3fffffff; ],t[],d[], ...
- java实现返回一个字符串所有排列
今天偶然看到了一个笔试题,觉得挺有意思,分享一下解题思路 public void permute(String string); public void permute(char[] chars , ...
- SpringCloud Eureka(注册中心集群)
多个注册中心,其实用不同的配置对应 不同的端口号注册就行了. 注册中心自己也是个服务,看看之前的单个注册中心是怎么样的呢? server: port: 8888 # 服务端口eureka: insta ...
- 浏览器根对象navigator之客户端检测
Navigator的5个主要属性: appName:Web浏览器的名称 appVersion:浏览器的版本号和其他版本信息 userAgent:浏览器在它的USER-AGENT HTTP标题中发送的字 ...
- iframe跨源报错:"Blocked a frame with origin from accessing a cross-origin frame"
一.报错信息: “Blocked a frame with origin from accessing a cross-origin frame” 二.在stackoverflow上找到原因 Same ...
- opencv之图像拼接
参考博客http://blog.csdn.net/u011630458/article/details/44175965 博主:羽凌寒 之后再进行系统学习
- OpenGL学习--开发环境
1. VS2017 Professional安装 1.1. 下载 mu_visual_studio_professional_2017_x86_x64_10049787.exe 1.2. 双击开始安装 ...