更准确的问法是:

是否需要根据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 - WikipediaWDK 1709 (aka 16299 aka RS3) Released! – OSRWhat'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时要生成几个版本?的更多相关文章

  1. Visual Studio 2013 新增web项目IIS Express的64位版   转载来源http://www.cnblogs.com/jianyus/p/3524335.html

    使用Visual Studio 2012开发SharePoint的应该都遇到过下面的错误“SharePoint 在32位进程中不受支持”,而怎么修改目标平台都不好使,因为VS 2012所配备的IIS ...

  2. Visual Studio 2013 新增web项目IIS Express的64位版

    使用Visual Studio 2012开发SharePoint的应该都遇到过下面的错误“SharePoint 在32位进程中不受支持”,而怎么修改目标平台都不好使,因为VS 2012所配备的IIS ...

  3. Win64 驱动内核编程-24.64位驱动里内嵌汇编

    64位驱动里内嵌汇编 讲道理64位驱动是不能直接内链汇编的,遇到这种问题,可以考虑直接把机器码拷贝到内存里,然后直接执行. 获得机器码的方式,可以写好代码之后,直接通过vs看反汇编,然后根据地址在看内 ...

  4. Win7 64位 + LoadRunner 11录制时弹不出IE的解决办法 Win7 64位 + LoadRunner 11录制时弹不出IE的解决办法

    Win7 64位 + LoadRunner 11录制时弹不出IE的解决办法 Win7 64位 + LoadRunner 11录制时弹不出IE的解决办法 1. 卸载IE9( 装了Win7 64位后,默认 ...

  5. windows10(64位)Anaconda3+Python3.6搭建Tensorflow(cpu版本)及keras

    转自:windows10(64位)Anaconda3+Python3.6搭建Tensorflow(cpu版本)及keras 1.本来电脑安装的是anaconda3 5.3.1,但安装的python版本 ...

  6. 一个伟大的发现,装X一下。笔记本win7系统64位机器执行unity 时,屏幕模糊解决的方法

    笔者笔记本win7系统64位机器执行unity 时.往往切换时unity界面屏幕模糊,后来发现此时须要下载DirectXRuntimes201006x64,安装就可以.

  7. 南天PR2、PR2E驱动下载,xp,win7,win8,win8.1,win10 32位64位驱动下载安装教程

    家里开淘宝店,有个针式打印机驱动.电脑各种换系统,为了装这个驱动可是废了不小的劲.不敢独享,所以现在把各种驱动以及安装教程分享出来. 注意: 打印机在开机状态下,电脑在开机状态下,不要插拔连接线!!! ...

  8. Squid代理服务器(一)——大家所用的游戏代理软件到底为何物?

    一.代理服务器应用场景分析 想当年大学时候宿舍控制网速,苦了我们这帮魔兽党,一到晚上工会活动我们就得和全校上万名学生抢网速,作为坦克的我总是因为网速问题导致团灭,咱也是有自尊的人,一怒之下花300元办 ...

  9. DDK编写64位驱动时加入x64汇编的方法

    上篇讲了如何在编写x64应用程序时加入x64汇编,这里来说说如何在编写x64驱动时加入x64汇编. 一.在asm文件中单独编写功能函数 比如要实现一个64位的加法函数,原型如下: ULONG64 my ...

随机推荐

  1. CocoaPods管理第三方

    之前听伟哥说用CocoaPods做第三方库的管理很方便,今天看了下自己做了下感觉确实不错.下面开始,Let's go!! 1.安装CocoaPods之前,先确保本地有Ruby环境,因为CocoaPod ...

  2. bootstrap table分页,重新数据查询时页码为当前页问题

    问题描述: 使用bootstrap table时遇到一个小问题,第一次查询数据未5页,翻页到第5页后,选中条件再次查询数据时,传到后端页码仍旧为5,而此时数据量小于5页,表格显示为未查询到数据. 处理 ...

  3. JPA之@OneToMany、@ManyToOne、@JoinColumn

    顾名思义,@OneToMany.@ManyToOne这两个注解就是处理一对多,多对一的关系 这两个注解是成双成对的,有了@OneToMany,一定会配置一个@ManyToOne OneToMany设置 ...

  4. 【模板】Bellman—Fort 单源最短路径算法

    2333 适用于边集储存 #include<bits/stdc++.h> using namespace std; const int inf=0x3fffffff; ],t[],d[], ...

  5. java实现返回一个字符串所有排列

    今天偶然看到了一个笔试题,觉得挺有意思,分享一下解题思路 public void permute(String string); public void permute(char[] chars , ...

  6. SpringCloud Eureka(注册中心集群)

    多个注册中心,其实用不同的配置对应 不同的端口号注册就行了. 注册中心自己也是个服务,看看之前的单个注册中心是怎么样的呢? server: port: 8888 # 服务端口eureka: insta ...

  7. 浏览器根对象navigator之客户端检测

    Navigator的5个主要属性: appName:Web浏览器的名称 appVersion:浏览器的版本号和其他版本信息 userAgent:浏览器在它的USER-AGENT HTTP标题中发送的字 ...

  8. 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 ...

  9. opencv之图像拼接

    参考博客http://blog.csdn.net/u011630458/article/details/44175965 博主:羽凌寒 之后再进行系统学习

  10. OpenGL学习--开发环境

    1. VS2017 Professional安装 1.1. 下载 mu_visual_studio_professional_2017_x86_x64_10049787.exe 1.2. 双击开始安装 ...