先安装驱动开发环境;VS2012+WDK 8.0;

新建一个WDF,用户模式驱动程序;

这是提供的基本框架;

生成解决方案,出现下图错误;无法打开 源 文件 "device.tmh";

网上查到一个资料,只需要在工程的.vcxproj文件里找到形如<ClCompile Include="xxx" />的行和形如<ClCompile Include="xxx">...</ClCompile>的块,把前者替换成后者的形式即可;

看一下;已经是后者的形式;

生成一个,成功一个,失败一个项目;

启动调试;没生成成功;无法进行;

又资料说是环境的问题;可能是;因为网上下了个VS2012安装,从安装的过程看是简化了的,可能缺了什么东西;

再生成一个内核模式驱动程序;生成,也是一样的报错;又说驱动程序已经生成,直接删除另一个项目也可;下回再搞;

学习一下.tmh文件相关和UMDF驱动基本概念;

WPP预处理器

WPP又称为WIndows软件跟踪预处理器,它可以跟踪软件组件

跟踪提供程序可以是以下项之一:
        内核模式驱动程序。
        用户模式驱动程序、应用程序或动态链接库(DLL)。

将 WPP 软件跟踪添加到 Windows 驱动程序
必须对每个跟踪提供程序(如驱动程序或用户模式应用)进行唯一定义。 为此,可以添加WPP_控件_guid宏,用于定义控件 GUID、标识符和跟踪标志。 这样就可以确定并控制要跟踪的时间和内容。 虽然每个驱动程序通常都有一个单独的控件 GUID,但驱动程序可以有多个控制 guid,或多个驱动程序可以共享一个控制 GUID。

为方便起见," WPP_控件_guid " 宏通常在公共头文件中定义。 必须在要检测跟踪的任何源文件中包含头文件(#包含)。

UMDF 概述

Windows 驱动程序框架 (WDF) 包含 UMDF,这是一个用于创建用户模式驱动程序的框架。 与 Kernel-Mode Driver Framework (KMDF) 一样,UMDF 提供了一个来自 WDM 的抽象层,处理大部分即插即用 (PnP) 和电源管理功能,并允许该驱动程序选择加入特定功能和事件处理。

UMDF 驱动程序抽象硬件功能,在用户模式环境中运行,并且可以访问不同的服务。 UMDF 驱动程序作为管理设备的驱动程序堆栈的一部分运行。 文件系统驱动程序,显示完整显示设备 (的驱动程序,而不显示仅显示的显示设备) ,打印驱动程序不能是 UMDF 驱动程序。

微软UMDF驱动相关链接如下;

https://docs.microsoft.com/zh-cn/windows-hardware/drivers/wdf/getting-started-with-umdf-version-2
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/wdf/sample-umdf-drivers
https://docs.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/writing-a-umdf-driver-based-on-a-template

UMDF驱动开发入门相关推荐

  1. Windows驱动开发入门系列教程

    从事驱动开发也有一段时间了,从最初的无头苍蝇到懵懵懂懂,到入门,直至今天,感觉一路走来,走了不少的弯路,只因为没有人引导.前几天,一个朋友问到我怎么学习Windows驱动开发,我就想到把我学习Wind ...

  2. Windows 10驱动开发入门(一):环境搭建

    驱动的开发对于初学者来说是不友好的,我们不知道怎么入手,从哪里入门.对于初学者来说束手无策,特别是碰到一个很简单的问题,都不知道怎么解决,这一系列的教程,就是用来排除这些障碍. 大部分的驱动开发教程都 ...

  3. 详细到吐血 —— 树莓派驱动开发入门:从读懂框架到自己写驱动

    师承陈立臣 目录 README 一.驱动初步认知 为什么要学会写驱动? 设备号的两个作用? 区分硬件 索引驱动在驱动链表中的位置 从open到设备,从上层到底层,经历了什么? 二.基于内核驱动框架编写 ...

  4. Android Camera驱动开发入门必备知识

    camera驱动开发所需要具备基础知识,如果你还没有了解过camera模块,那么这些基础必备的知识,将会对你比较有用,俗话说"磨刀不误砍柴工",基本功配置好了,相信你在做camer ...

  5. Windows驱动开发入门 -- HelloWorld

    一.驱动开发环境搭建 在Download the Windows Driver Kit (WDK)页面中下载最新版本的Visual Studio和WDK进行安装.如果要下载老版本可以到Other WD ...

  6. 树莓派(十一)树莓派驱动开发入门:从读懂框架到自己写驱动(上)

    嵌入式之路,贵在日常点滴 ---阿杰在线送代码 目录 一.驱动初步认知 为什么要学会写驱动? 设备号的两个作用? 索引驱动在驱动链表中的位置 从open到设备,从上层到底层,经历了什么?(理解透这个工 ...

  7. windows 驱动开发入门——驱动中的数据结构

    最近在学习驱动编程方面的内容,在这将自己的一些心得分享出来,供大家参考,与大家共同进步,本人学习驱动主要是通过两本书--<独钓寒江 windows安全编程> 和 <windows驱动 ...

  8. 【USB】macOS usb内核驱动开发入门

    文章目录 一.环境准备 1.背景说明 2.SIP是什么?为啥要关闭SIP? 3.关闭SIP(intel处理器) 4.样例代码下载 二.编译运行 三.参考资料 一.环境准备 不想我啰哩啰嗦的直接跳到第3 ...

  9. 驱动开发入门:WDK与VS2010

    最近要开始做内核驱动了,现实属入门窥探,今花上一小时搞定了VS2010与WDK的配置,记录如下: 1.WDK与VS2010自然要装好啦,似乎学习版的VS2010不行: 2.如下增加一个配置方案名Dri ...

最新文章

  1. 破解Win2008口令-ERD6.0
  2. MIT用超导体制成极低功耗神经元,能效接近人类大脑,比计算机高4个量级
  3. 人工智能算法_人工智能的灵魂——算法
  4. MATLAB可视化实战系列(二十八)-贪心算法求快速平方根倒数算法中的“魔术数字”【含matlab源代码】
  5. sumif三个条件怎么填_函数SUMIF和SUMIFS
  6. python hexdigest,Java方法,可以为Hex中的HMAC-SHA256提供与Python方法相同的输出
  7. Leaf服务器框架从入门到放弃(一)认识Leaf和安装Leaf环境
  8. 虚拟机安装CentOS6.4
  9. 挑战记忆力-Web前端实现记忆纸牌游戏(JS+CSS)
  10. andoridstudio run图标是灰色两步解决
  11. selenium使用send_keys()方法写中文报错的解决方法
  12. 吃瓜笔记 | 旷视研究院解读Light-Head R-CNN:平衡精准度和速度
  13. Effective C++ 英中简繁术语对照
  14. 编译安装cacti-spine
  15. 2D 游戏工具系列:unity自带Tilemap和地图编辑器Tiled的基本使用以及Super Tiled2Unity如何导入tmx到Unity中(2)
  16. iframe标签全屏
  17. 【C语言】qsort函数使用(详解)
  18. centos安装mysql以及mysql-devel
  19. “让你更值钱”的八个项目管理习惯
  20. 基于CUDA的卷积神经网络算法实现

热门文章

  1. 栈和队列的算法题总结
  2. AMD Developer Center有关ATI Stream的内容
  3. jQuery 选择器 之 案例:淘宝服饰精品案例
  4. Python 图像处理 - 用PIL库提取图片中的颜色并展示为色谱实例演示,RGB颜色排序方法
  5. Python 技术篇-基于随机数的uuid码的生成
  6. ARM版本的IAR下载和安装
  7. 标准日本语初级上第一单元 第一课[李さんは 中国人です]
  8. 用步进正弦激励法测量计算机声卡输出输入幅值频响函数
  9. 如何用auto_ptr做为函数的参数进行传递
  10. 【量化投资】策略八(聚宽)