问题标签 [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 投票
0 回答
605 浏览

tfs - “错误 MSB8020:找不到 WindowsUserModeDriver10.0 的构建工具。” 但

UMDF每天第一次构建驱动程序解决方案会产生错误:

“错误 MSB8020:找不到 WindowsUserModeDriver10.0(平台工具集 = 'WindowsUserModeDriver10.0')的构建工具。”

但是,如果我登录到构建服务器并再次启动VS 2017并关闭它,那么构建将在一天的剩余时间内工作 - 即使我将构建用户从构建服务器中注销。VS 2017无论那天是否已在构建服务器上启动,我都需要构建工作。

这让我很难过。我已经用谷歌搜索了很多地方,但也许我不知道要搜索什么,或者当我看到答案时我没有认出答案。我不知道 VS 在做什么让 WindowsUserModeDriver10.0 为TFSBuild 工作。

我打算展示构建任务定义的屏幕截图,但这似乎不是一个选项。但即便如此,我能看到的唯一可能有帮助的是,如果有一个论点可以提供给Visual Studio Build任务。

无论那天 Visual Studio 是否在构建服务器上启动,构建都应该始终有效。

附录:今天早上我VS 2017在构建服务器上运行。构建再次失败,这次我所要做的就是登录构建服务器。我的会话仍然处于活动状态,因为VS 2017仍在运行。所以现在我真的很困惑。

更多:今天早上,我在构建过程中没有遇到任何问题,也没有登录到构建服务器,所以这不仅仅是因为我已经或没有VS 2017在构建服务器上启动。相反,它似乎是断断续续的。为了暂时缓解这个问题,我添加了构建任务的克隆任务,该任务仅在上一步失败时运行,以便给它第二次成功的机会。

0 投票
1 回答
1056 浏览

c++ - Windows 生物识别框架示例 umdf 驱动程序:此设备无法启动。(代码 10)

我正在尝试运行 Windows生物识别驱动程序示例,但我对驱动程序开发很天真

我已经更改了 inx 文件中的硬件 ID,并重建了驱动程序项目,并将生成的驱动程序安装在我的 Windows 10 Pro 版本 1803 上。

我正在使用指纹 Morpho 设备 1300 E3

驱动安装成功,但出现一个错误:

此设备无法启动。(代码 10)指定的请求不是目标设备的有效操作。

我查看了文件C:\Windows\INF\setupapi.dev.log

它显示下一个警告:

但是我在本地计算机上的受信任的根证书颁发机构和受信任的发布者上安装了 TestCertificate

我还检查了事件查看器:应用程序和服务日志 > Microsoft\Windows\CodeIntegrity 应用程序和服务日志 > Microsoft\Windows\Biometrics

我尝试在msdn 的一些视频之后使用 wdfverifier.exe 进行调试,但该过程未启动,因此我无法调试:(

我验证了 Visual Studio 没有对 EngineAdapter.dll 插件文件进行签名,因此我禁用了驱动程序签名并按照本文手动进行。但我得到相同的错误代码 10 :(

我还想知道错误代码 10 是否是预期的行为,因为 EngineAdapter.dll 的代码没有实现。

更新:我正在 Windows 10 Pro 版本 1709 虚拟机 VMWare 上进行测试,但出现其他错误:

此设备无法正常工作,因为 Windows 无法加载此设备所需的驱动程序。(代码 31)

同样的警告:

完整的日志文件在这里setupapi.dev.log

我认为驱动程序不会加载,因为有关证书或错误的警告可能在其他地方。

如果有人可以给我一个小建议以继续。我现在被卡住了:(

非常感谢。

0 投票
0 回答
376 浏览

c++ - 如何让 UMDF 驱动程序写入文件?

我想在我的 UMDF 驱动程序中将字符串记录到外部文件中。例如

// create/open file CString filePath = _T("C:\\Metric.csv"); CHandle hFile(CreateFile(filePath, GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL));

这将返回 5(拒绝访问)。

这是因为 UMDF 驱动程序无法访问需要用户凭据的文件或资源吗?如果是这样,我可以创建/修改 csv 文件的目录。

0 投票
1 回答
227 浏览

c++ - UMDF 驱动程序是否可以写入文件?

对于我想将字符串记录到文本文件的情况,比如在 C:\log.txt 中,这在 UMDF 驱动程序中是否可行?考虑到 UMDF 驱动程序的 UAC 有限。

0 投票
1 回答
346 浏览

c++ - Windows 生物识别服务在调用 WinBioCaptureSample 时循环运行 SensorAdapterStartCapture

我正在使用来自 github 的 umdf 示例实现 Windows 生物识别驱动程序。当我调用WinBioCaptureSample时,下一个插件的方法会循环运行。

我使用TraceView来调试我的驱动程序,它会在陷入循环时显示下一条跟踪消息。

方法CBiometricDevice::OnGetSensorStatus总是返回 WINBIO_SENSOR_READY

接下来是方法CBiometricDevice::OnCaptureData

SensorAdapterStartCaptureSensorAdapterFinishCapture方法返回S_OK

我使用了这个 github 项目中的下一个代码

有时我的代码卡在一个循环中,而其他时候不是:(

欢迎任何提示谢谢。

0 投票
1 回答
186 浏览

c - 从 UMDF 驱动程序执行用户应用程序,例如(记事本)

主要目标是了解是否有办法从 UMDF(用户模式驱动程序框架)事件启动或执行任何用户模式应用程序。事件无关紧要。任何事件都可能起作用,例如 DriverEntry、DeviceAttach

当 Windows 启动时,我正在研究一种启动应用程序的解决方案。

  1. 我已经尝试从驱动程序开始,但没有找到任何包含“process.h”库的方法,该库有一个函数调用“system('app_name') 来启动。但没有运气

  2. 我曾尝试在这里用 injdrv 注入 DLL!,但没有找到出路

如果您提出任何解决方法,我将不胜感激。提前致谢

0 投票
1 回答
195 浏览

winapi - 关于虚拟串口Windows驱动的问题

关于https://github.com/microsoft/Windows-driver-samples/tree/master/serial/VirtualSerial2中的示例。

在 queue.c 中有 EvIoRead,当应用程序从我的虚拟驱动程序请求数据时会调用它。当没有数据时,执行以下代码:

WdfRequestForwardToIoQueue叫做。但是,当有新数据时,我不确定该怎么做。如何触发EvtIoRead再次被调用?

0 投票
0 回答
78 浏览

c - UMDF 从系统重启/重启事件中检测显示状态(开/暗/关)

使用PowerSettingRegisterNotification,我能够监听以下系统电源事件的显示状态(GUID_CONSOLE_DISPLAY_STATE用作 SettingGUID):

  • 系统关机
  • 睡觉
  • 休眠
  • 用户空闲(n 分钟后关闭屏幕)

我无法收到显示状态的是执行系统重新启动时。我的电源设置通知回调未被调用,既不是从重新启动前的显示状态关闭,也不是在重新启动后显示状态打开。

这是正常行为吗?还是我应该听另一个事件,专门处理这种情况?

编辑:我也尝试过GUID_MONITOR_POWER_ON作为我的 SettingGUID,产生了相同的行为。

0 投票
0 回答
279 浏览

c++ - 从 x86 应用程序安装 x64 位驱动程序

我有一个 UMDF 驱动程序,目前通过 2 个独立安装程序重新分发,一个用于 x64,一个用于 x86。

安装驱动函数就是这个,从devcon复制的:

这工作正常,但我想要一个包含 x86 和 x64 驱动程序的单个 x86 可再发行组件,并检测是否在 WOW64 中运行并安装 x64 驱动程序。

这次InstallDriver函数在这个调用中失败了:

最后一个错误 3758096949。

我找不到有关该错误的更多信息,而且我在SetupDiSetDeviceRegistryProperty中没有看到任何将注册表设置为 x64 的提示,例如 RegCreateKeyEx 的 KEY_WOW64_64KEY 标志。

有没有办法避免这两个可执行文件?

0 投票
0 回答
56 浏览

c++ - 用于指纹设备的 Windows 生物识别框架

我们的指纹设备可以作为 USB 设备正常工作。

数据捕获与我们的专有应用程序配合得很好。

目前我们正在使用自定义供应商 USB 类进行驱动程序开发。

当我们插入此设备时,此设备会列在 Windows 设备管理器的“通用串行总线控制器”类别中。

我们希望在同一设备上使用 Windows Biometric Framework 来实现 Windows Biometric 登录。

我知道,我们需要编写 WBDI 兼容驱动程序,但我有与指纹设备硬件相关的查询。

我们的目标是 Windows 7 及更高版本的操作系统。

是否需要对硬件进行任何更改才能使用 WBDI 驱动程序?