UMDF驱动开发入门

绝地灬酷狼 2022-10-06 02:57 276阅读 0赞

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

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JjYm9ibzIxY24_size_16_color_FFFFFF_t_70

这是提供的基本框架;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JjYm9ibzIxY24_size_16_color_FFFFFF_t_70 1

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JjYm9ibzIxY24_size_16_color_FFFFFF_t_70 2

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

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JjYm9ibzIxY24_size_16_color_FFFFFF_t_70 3

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JjYm9ibzIxY24_size_16_color_FFFFFF_t_70 4

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JjYm9ibzIxY24_size_16_color_FFFFFF_t_70 5

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

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

2021061023175878.PNG

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

WPP预处理器

  1. WPP又称为WIndows软件跟踪预处理器,它可以跟踪软件组件
  2. 跟踪提供程序可以是以下项之一:
  3. 内核模式驱动程序。
  4. 用户模式驱动程序、应用程序或动态链接库(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

发表评论

表情:
评论列表 (有 0 条评论,276人围观)

还没有评论,来说两句吧...

相关阅读

    相关 【MongoDb入门驱动实践

    说说C\驱动对mongodb的操作,目前驱动有两种:官方驱动和samus驱动,不过我个人还是喜欢后者, 因为提供了丰富的linq操作,相当方便。   官方驱动:[http

    相关 Linux 驱动程序入门

    驱动是具有入口和出口的一组方法的集合,这一组方法才是驱动的核心内容。 对于字符设备驱动程序,最核心的就是 file\_operation 结构,这个结构实际上是提供给虚拟文