问题标签 [umdf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
44 浏览

driver - 如何处理虚拟串行驱动程序中的 COM 设置

我使用微软示例创建了虚拟串行驱动程序 (UMDF)。而不是设备,我只是接收数据并将数据转发到 TCP 服务器。

考虑到它只是虚拟的并且没有设备,我是否需要在驱动程序中处理虚拟 COM 设置,如波特率、奇偶校验、停止位、数据长度(由应用程序设置)?那么流量控制呢?

0 投票
1 回答
448 浏览

windows - windows沙盒功能可以用于驱动测试吗?

第一次做windows驱动开发,我想部署我的第一个驱动。但是我没有第二台电脑。

微软文档

通常,当您测试和调试驱动程序时,调试器和驱动程序会在不同的计算机上运行。运行调试器的计算机称为主机,运行驱动程序的计算机称为目标计算机。目标计算机也称为测试计算机

我从vhidmini2作为我的项目基础(UMDF2 版本)开始。我想知道是否可以使用Windows 沙盒功能代替测试计算机?我的驱动程序不会与任何硬件交互。

0 投票
1 回答
434 浏览

windows - Umdf2 Hello World 驱动程序,在哪里查看输出?

我想写一个UMDF2windows驱动,不知道从哪里看输出OutputDebugString

这是我的代码,类似于KMDF Hello World.

windbg运行 KMDF Hello World 驱动程序在内核模式调试中成功给了我输出。但是,UMDF Hello World 驱动程序没有显示输出。

这就是我(卸载)安装驱动程序的方式:

另外,我想使用用户模式调试,但我不知道如何为 UMDF 驱动程序执行此操作。

0 投票
0 回答
114 浏览

c++ - WH_KEYBOARD_LL 挂钩未在 UMDF 驱动程序中调用,但在示例控制台应用程序中有效

我试图通过注册 WH_KEYBOARD_LL 和 WH_MOUSE_LL 挂钩来检测所有按键和鼠标事件。显然,这些低级挂钩不需要挂钩过程驻留在单独的 DLL 中。

我在以下示例应用程序(控制台应用程序)中有此工作。

所以这很有效,无论哪些应用程序处于焦点(如果有),我都可以看到打印到控制台的键盘和鼠标事件,这很棒。

但是,当我在 UMDF 驱动程序中执行此操作时,消息不会通过。对 SetWindowsHookEx 的调用似乎成功且没有错误。

我正在考虑创建一个最小的 UMDF 驱动程序来测试它是否可能,但我想我先在这里问一下,以防有人能告诉我它是否可能。如果没有,我会考虑其他一些方法。

谢谢

0 投票
1 回答
89 浏览

uwp - 使用 CustomCapability + Signed SCCD 将驱动程序访问权限限制为仅对 UWP 应用程序的访问

我有一个 UMDF 驱动程序,它提供 IOCTL 命令以供 UWP 应用程序访问。UWP 应用程序被提交到商店,并带有适当的自定义功能和签名的 SCCD,以便访问 UMDF 驱动程序。

我从SCCD MS 文档中了解到,这允许 UWP 应用程序访问驱动程序及其 IOCTL,因此当其他 UWP 应用程序尝试访问时,它们将被拒绝。但是,SCCD 没有明确声明 Win32 应用程序仍然能够访问 IOCTL,我认为这违背了拥有自定义功能和 SCCD 的目的。

鉴于这个问题,我知道我必须以另一种方式拒绝来自 Win32 应用程序的请求。

我们想使用这个GetApplicationUserModelId函数来确定应用程序是否不是 UWP 应用程序。这需要 pID,我们可以使用WdfRequestGetRequestorProcessId. 但是,获取此 pID 的进程句柄需要访问其他进程的内存。由于 UMDF 驱动程序没有权限,因为它不拥有进程,ERROR_ACCESS_DENIED因此在尝试调用 OpenProcess 时会返回 an,即使访问权限为PROCESS_QUERY_LIMITED_INFORMATION.

OpenProcess 文档建议,为了打开另一个本地进程的句柄并获得完全访问权限,我们必须启用该SeDebugPrivilege权限。我相信这样做会使驾驶员面临更大的安全风险,因此,坚持下去可能不是一个好主意。

这种方法是否应该有另一种替代方法,或者另一种类型的描述符,或者任何类似的东西可以支持限制 win32 应用程序使用 IOCTL 的目标?

0 投票
1 回答
46 浏览

driver - UMDF:在 EVT_WDF_TIMER 回调函数中访问设备注册表项

EVT_WDF_TIMER 我在使用 UMDF 驱动程序从回调函数检索存储在设备注册表中的数据时遇到问题。这样的回调函数只有WDFTIMER对象作为它的唯一参数。为了能够访问 UMDF 中的注册表,WdfDeviceOpenRegistryKey需要一个指向该WDFDEVICE对象的指针。在调用回调函数之前, my WDFTimer(在计时器结束后调用回调函数)由WdfTimerCreate. 我也提供了适当WDF_OBJECT_ATTRIBUTES的属性,其中一个属性是WDFOBJECT ParentObject我将WDFDEVICE对象分配到的位置。

现在,我希望我可以检索WDFDEVICE我添加的对象WDF_OBJECT_ATTRIBUTES,但它似乎无法从WDFTIMER参数中访问。我想知道,有什么办法可以WDFDEVICEEVT_WDF_TIMER 回调函数中检索指向我的指针?

0 投票
2 回答
316 浏览

windbg - “检测到 PNP/INF 版本与图形适配器上的 KMD 文件版本不匹配”

我一直在测试 UMDF IddCx 视频驱动程序,并且这条消息刚刚开始出现(在安装 devcon.exe ...之后)以及 WinDbg 中的断点:

堆栈信息(Windows 10 专业版 | 测试模式 | 内部版本 19041.vb_release.191206-1406):

我不明白这是什么意思;我没有更改 INF 中的任何内容,这是一个 UMDF 驱动程序,那么它指的是什么“KMD 文件版本”?我搜索了消息本身以及 DpiFdoValidateKmdAndPnpVersionMatch,但结果为空。

编辑:(添加版本信息)

任何人都可以阐明这一点吗?

0 投票
1 回答
194 浏览

driver - TraceView 能够捕获驱动程序安装期间发生的日志,但显示为未知

我正在开发一个 UMDF 驱动程序,我可以使用它的PDB文件在其生命周期内确认事件/函数调用。但是,我也能够在其DriverEntry功能之前捕获事件。这个事件已经成为我关心的问题,因为我怀疑它们改变了驱动程序初始化的一些值,从而导致了问题。我想了解更多关于这些事件的信息,但信息TraceView显示它们为“未知”,如下所示:

在此处输入图像描述

有没有办法更好地捕获这些跟踪日志?似乎驱动程序 pdb 不包含这些日志正确显示的信息。

编辑:我使用TMF从我的PDB文件中提取文件tracepdb,似乎我没有与标记为 的消息 GUID 对应的 TMF 文件"No format information found"。难道这些跟踪消息来自外部实体,而不是来自驱动程序?

0 投票
1 回答
125 浏览

c++ - 用户模式驱动程序 (umdf) c++ http请求

我开发了一个 umdf2 驱动程序,在某些时候它需要与远程服务器通信以获取一些数据。我想知道在 Windows 用户模式下是否有任何简单的方法(例如库)来执行 http 请求(GET、POST)?我从未使用过winsock2,我不确定使用它有多容易/可能?

目前,我正在使用一种管道将这项工作交给另一个驻留在上层的应用程序,并使用 Windows SDK 顺利完成这项工作。

任何意见是极大的赞赏。

0 投票
0 回答
81 浏览

windows - 关于适配器工作流程的问题

我在 Win10 操作系统上使用指纹模块开发 WBDI 和 EngineAdapter 时遇到了问题。

问题是为什么在我完成下面的第 1 步和第 2 步之后,EngineAdapter 没有进入下面的回调函数?

因为微软的文件提到,当注册工作流程通过时,将调用以下函数。( https://docs.microsoft.com/zh-tw/windows/win32/secbiomet/adapter-workflow )

以下是未调用的回调函数。

(1) “EngineAdapterCreateEnrollment” (2) “EngineAdapterSetEnrollmentParameters”

有谁知道如何解决它?非常感谢。

步骤1

第2步

适配器工作流程

EngineAdapter 日志

WBDI 日志

EngineAdapter 代码 (EngineAdapter.cpp)

WBDI 代码