驱动项目设置中混淆点小记

1目标平台 / 目标平台版本:

项目的当前目标平台/目标平台的版本

举例说明:windows / windows10。。而在本人的vs2015中,有2个选项:10.0.14393.0 和8.1

与项目文件(*.vcxproj) 中条目对应关系:目标平台版本 对应  <PropertyGroup Label="Globals">中的WindowsTargetPlatformVersion; 目标平台没有对应项目:估计在目标平台版本中已有体现,就不另外显示了。

2.平台工具集(platform toolset):

The Windows Driver Kit (WDK) takes advantage of the MSBuild platform toolset feature to provide tools and libraries that are specific to driver development. The MSBuild platform toolset feature is extensible. The specific version of the platform toolset that you want to use is controlled by an MSBuild property called PlatformToolset. 

其中可选值中不明确、不能望文生义的是: Visual Studio 2013 (v120) Use for any type of Windows application (default). -这个是需要跟前几个区别:前几个都跟driver有关

如输入(注意不是选择)wkmd81.(windows kernel mode driver),则不知为何显示为 wkmd8.1(未安装)。。明显我安装的有啊。。这时如果选择wkmd10,则条目3会出现在driver settings中,否则driver setting都不会出现。。另外需要特别注意的是:即使它显示wkmd81.为未安装,但实际上因为我有安装过、所以还是会正常build的。

与项目文件(*.vcxproj) 中条目对应关系:<PropertyGroup Condition="‘$(Configuration)|$(Platform)‘==‘win8.1debug|Win32‘" Label="Configuration">中的PlatformToolset

该条目最清晰、没有歧义,意为:用到环境是什么。

3.**只有驱动会用到** 目标操作系统和目标平台

target OS version: target OS version the driver is built for;

target platform: platform the device driver target for. Universal driver targets all windows edition.

在本人的vs2015中,target OS version 有4个选项:win10 or higer, win8.1,win8, win7..

与项目文件(*.vcxproj) 中条目对应关系:<PropertyGroup Condition="‘$(Configuration)|$(Platform)‘==‘win8.1debug|Win32‘" Label="Configuration">中的<TargetVersion>Windows7</TargetVersion>和<DriverTargetPlatform>Desktop</DriverTargetPlatform>

这个跟上述条目1字面上有点混,目前自己的理解是:如做驱动项目,这个必须准确设置-实际也就驱动项目,才会在项目属性选择中出现 driver setting这个包含本条目的属性。

猜想1:上述条目1跟驱动开发没啥关系?

猜想2:自己vs2013升级的文件过滤驱动驱动项目,在社区版vs2015中,也能看到上述条目3;而自己虚拟盘项目可能是来自vs2013之前的缘故,所以同样在社区版vs2015中,没有对应条目?

综上,可能是vs2013之后把驱动项目和非驱动项目都混在一起做项目设置的关系吧,需要在不同的设置条目下考虑:到底这个条目是给 驱动还是非驱动项目用的?

参考资料:

Windows 10 WDK and Visual Studio 2015 – OSR

Building Drivers for Different Versions of Windows | Microsoft Docs

Building a Driver with the WDK | Microsoft Docs

时间: 2024-10-07 23:27:14

驱动项目设置中混淆点小记的相关文章

在vs2008中添加lib文件以及一些常用项目设置选项

下面以添加ws2_32.lib文件为例 方法一(直接添加代码): 直接在.cpp文件中,添加#pragma comment(lib, "ws2_32.lib");即可.(ws2_32.lib即为你要添加的lib文件) 方法二(在vs工具栏中添加): 1.项目(project) -> TcpSrv属性(TcpSrv properties) (其中TcpSrv为工程名) 2.打开TcpSrv属性页后,配置属性 -> 链接器(linker) -> 输入(Input) ,在附

iOS项目开发中的知识点与问题收集整理(Part 一)

前言部分 注:本文并非绝对原创 大部分内容摘自 http://blog.csdn.net/hengshujiyi/article/details/20943045 文中有些方法可能已过时并不适用于现在的开发环境. 1.Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view  [[self.searchBar.subviews objectAtIndex:0]

iOS项目开发中的知识点与问题收集整理

注:本文并非绝对原创 大部分内容摘自 http://blog.csdn.net/hengshujiyi/article/details/20943045 文中有些方法可能已过时并不适用于现在的开发环境. 1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view  [[self.searchBar.subviews objectAtIndex:0] remov

Django项目: 项目环境搭建 ---- 二、django项目设置

1.配置模板文件 TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.

位标记与Flags特性结合枚举在Unity中的使用小记

位标记与Flags特性结合枚举中的使用小记 enum在应用中往往用来标记一些我们需要的类似开关功能的效果,enum默认的初始化值是根据以下形式赋值的.如下图: 图-1 而且在是用enum来标记位时往往用十六进制而不是十进制,因为十进制的相关性要比十六进制强很多.早在C#4.0以前,要确定一个特定的位是否被设置,是对标志字与该位标志是用位与运算符,如: bool useRed = (ops & Colors.Red) == Colors.Red; C#4.0引入了HasFlag方法用来检测多个标记

.NET项目开发的几个非常重要的项目设置

在开发.NET项目的时候,包括Winform项目和Web方面的项目,编译和部署的时候,都需要考虑到是32位的X86方式,还是64位的方式,有时候还需要进行调试,如果没有合理设置好这些关系,还可能出现无法调试的问题,本文基于我对Winform的开发总结,介绍在.NET项目中对项目工程的设置操作. 1.设置编译平台的属性 一般情况下,我们为了同时兼容32位和64位操作系统,我们需要对设置好.NET项目的编译属性,一般设置为X86的方式.在VS的IDE里面,选择生成->配置管理器菜单. 如我的混合框架

如何为编程爱好者设计一款好玩的智能硬件(八)——LCD1602点阵字符型液晶显示模块驱动封装(中)

六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计一款好玩的智能硬件(七)——LCD1602点阵字符型液晶显示模块驱动封装(上) 八.LCD1602点阵字符型液晶显示模块驱动封装(中) 已经有好一阵子没写了,一方面是因为最近闲杂的事特多,另一方面(主要方面)是因为我卡在了LCD1602驱动的权衡上面——总共3个控制线和一个8位并行的数据线,放在51

跟我extjs5(03--在项目过程中加载文件)

跟我extjs5(03--在项目过程中加载文件) 上一节中用sencha工具自己主动创建了一个项目.而且能够在浏览器中查看. 如今我们来看看js类载入过程. 例如以下图所看到的: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamZvaw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 1?首先:浏览器中输入 localhost:1841 ,

项目实践中--Git服务器的搭建与使用指南(转)

一.前言 Git是一款免费.开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.在平时的项目开发中,我们会使用到Git来进行版本控制. Git的功能特性: 从一般开发者的角度来看,git有以下功能: 1.从服务器上克隆数据库(包括代码和版本信息)到单机上. 2.在自己的机器上创建分支,修改代码. 3.在单机上自己创建的分支上提交代码. 4.在单机上合并分支. 5.新建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并. 6.生成补丁(patch),把补