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 ...
随机推荐
- JavaScript文档对象模型
文档对象模型(Document Object Model, DOM)是W3C提出的用于访问和修改文档的接口. JavaScript设计的初衷是为Web提供交互功能,它通过DOM接口来访问和修改文档. ...
- UIKit 框架之UICollectionView
1.自定义UICollectionViewCell 在myCollectionViewCell.h中声明两个属性 // // myCollectionViewCell.h // UICollectio ...
- 使用Python学习RabbitMQ消息队列
rabbitmq基本管理命令: 一步启动Erlang node和Rabbit应用:sudo rabbitmq-server 在后台启动Rabbit node:sudo rabbitmq-server ...
- [转]UTF-8 encoding support for the BCP utility and BULK INSERT Transact-SQL command in SQL Server 2014 SP2
本文转自:https://support.microsoft.com/en-us/help/3136780/utf-8-encoding-support-for-the-bcp-utility-and ...
- jQuery如何根据元素值删除数组元素
用到的方法$.inArry(); $.inArray( value, array [, fromIndex ] ) value 任意类型 用于查找的值. array Array类型 指定被查找的数组. ...
- Linux root用户不能通过SSH连接的问题
http://jingyan.baidu.com/article/fd8044fad48fc95031137a85.html 最近在虚拟机安装Ubuntu之后,通过普通ssh远程连接的时候明明输入了正 ...
- 关于jquery的入门,简单的封装。
看过不同的博客,觉得以下的博客写的比较简洁明了,通俗易懂. 关于jquery博客:http://www.cnblogs.com/moqiutao/p/6523924.html 关于js:http:// ...
- Java:使用DOM4j来实现读写XML文件中的属性和元素
DOM4可以读取和添加XML文件的属性或者元素 读取属性: public static void ReadAttributes() throws DocumentException { File fi ...
- Java并发基础知识你知道多少?
并发 https://blog.csdn.net/justloveyou_/article/details/53672005 并发的三个特性是什么? 什么是指令重排序? 单线程的指令重排序靠什么保证正 ...
- Centos7配置
1.静态ip配置 1.1 cd /etc/sysconfig/network-scripts/ 1.2 vim ifcfg-ens33 (可通过ls查看 一般为第一个) (网关DNS1可以通过V ...