问题标签 [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 回答
253 浏览

c++ - 司机的符号链接消失

在我的 UMDF Windows 驱动程序中,我在目录中创建了我的设备的符号链接,\DosDevices\Global\以跟踪设备实例。因此,如果设备连接到主机,则会\DosDevices\Global\MyDevice0创建符号链接。如果连接了另一个设备,\DosDevices\Global\MyDevice1则会创建一个符号链接。我通过以下代码实现了这一点:

方法文档:IWDFDevice::CreateSymbolicLink

如果我快速将两个设备连接在一起,这将起作用。但是,如果我等待大约 10 秒并连接第三个设备,它似乎会获得\DosDevices\Global\MyDevice0不会发生的符号链接,因为第一个设备已经获得索引0并且仍然连接。

那么为什么符号链接似乎在一段时间后被删除了呢?另外我想知道我的方法是否适合计算设备实例?

0 投票
1 回答
934 浏览

windows - 编写 UMDF 虚拟设备驱动程序(或软件设备),如虚拟 DVD

我有一个“现成的”商业软件,它使用 ANT USB 加密狗与自行车教练进行通信。

我的教练与软件不兼容,因为协议略有不同(不是很多)。

我的目标是编写一个协议翻译器。我唯一能想到的就是在设备管理器(相同的 PID\VID)中编写一个看起来像 ANT USB 设备的 UMDF 虚拟设备驱动程序(如 Magic ISO Virtual DVD),同时将自身连接到物理 ANT 设备。虚拟设备驱动程序将执行协议转换。

我在这里查看了 Microsoft 的几个示例https://github.com/Microsoft/Windows-driver-samples但我找不到任何相关内容。我认为这个示例将是一个好的开始https://github.com/Microsoft/Windows-driver-samples-master/Sensors/CustomSensors但无法使用 inf 文件中的给定过程加载驱动程序。

顺便说一句,我熟悉 INF 文件的内容以及 KMDF 和 UMDF 设备驱动程序编程的基础知识。我的问题是编写一些将加载到设备管理器中的内容,并将其自身呈现为真正的 USB 设备,即使它没有被 USB 总线子系统枚举。

任何具有驱动程序开发经验的人都可以向我指出一些相关的代码示例或文档吗?

此致 !

0 投票
0 回答
95 浏览

visual-studio-2010 - Microsoft Visual Studio 2010 Professional 和 wdksetup for wdk8.1

我已经为 wdk8.1 安装了 Microsoft Visual Studio 2010 Professional 和 wdksetup,但在“新建项目”对话框中找不到“Visual C++ > Windows 驱动程序 > WDF”。我必须开发一个微过滤驱动程序。引导我迷路

0 投票
2 回答
951 浏览

usb - 无法为 UMDF USB 驱动程序编译 Visual Studio 的模板

该行:

出现红色下划线,报错“无法打开源文件”(我这里是从西班牙语翻译过来的,英文的写法可能不一样)。

此外,像这样的话:

全部显示为红色下划线。“标识符未定义”。

发生了什么?

0 投票
0 回答
362 浏览

windows - 无法在 Windows 7 中为设备设置友好名称

在我的 UMDF 设备驱动程序中,我以编程方式为我的设备设置了一个友好名称:

它适用于 Windows 8 和 10。问题是它不适用于 Windows 7 和 Vista。虽然执行上述代码时我没有收到任何错误,并且显示“设备的友好名称已成功设置”,但设备管理器中的友好名称并没有改变。刷新设备列表后它也不会改变。当我在注册表中查看设备的硬件密钥时,HKLM\SYSTEM\CurrentControlSet\Enum\USB\VID_XXXX&PID_XXXX\XXXX缺少“FriendlyName”的值。当我手动添加它时,它会显示在设备管理器中。

0 投票
0 回答
91 浏览

windows - 如何将旧版 UMDF HID 驱动程序移植到 UWD

我正在努力使使用 UMDF UWD 编写的旧版 HID 驱动程序兼容。我浏览了有关编写通用 Windows 驱动程序的 MSDN 文档,但没有看到任何有关将现有旧版驱动程序移植到 UWD 的文章。

有人可以提供有关此文档的帮助吗?或采取的方法?

0 投票
0 回答
334 浏览

c++ - 在 Windows 用户模式驱动程序中使用 C++ 标准库

在阅读了该主题并研究了 Visual Studio 2017 中的模板项目后,我最近接到了为我们的设备编写 Windows 用户模式驱动程序的任务,并且很好地掌握了 WDF 和 UMDF 基础知识。

我决心尽可能多地使用现代 C++,如果它也可以包含标准库,那么我会比我需要制作自己的相应功能要快乐得多。

在一般情况下在 Windows 用户模式驱动程序中使用现代 C++ 以及具体使用现代 C++标准库功能是否有任何最佳实践?

我需要注意哪些可以规避的陷阱?

我应该完全避免吗?如果是这样,基于什么理由?

0 投票
1 回答
386 浏览

c++ - Visual C++ UMDF V2 模板似乎创建了一个 C 项目,而不是 C++

我是驱动程序开发的新手。我被要求为一个简单的 USB 设备编写通用模式驱动程序。我一直在阅读“使用 Windows 驱动程序基础开发驱动程序”一书。我也一直在查看并试图理解本书所引用的代码示例。这本书展示了 C++ 代码,而我一直在看的代码示例都是用 C++ 编写的。我什至不得不复习 C++,因为我在本世纪还没有看过它。使用 VS 2017,当我从模板创建项目时,我选择 Visual C++ -> Windows 驱动程序 -> WDF -> 用户模式驱动程序 (UMDF V2)。项目创建后,从表面上看,它是一个 C 项目,而不是 C++ 项目。我只是困惑吗?好吧,答案是肯定的,但是为什么它会创建一个包含扩展名为 .c 而不是 .c 的文件的项目。cpp 什么时候清楚我选择了 Visual C++ 模板?对于 newby 设备驱动程序有什么见解吗?

0 投票
0 回答
64 浏览

uwp - 从 UMDF 驱动程序访问相机和渲染器

我们正在升级我们现有的聊天应用程序以支持视频聊天,在我们现有的架构中,我们有以下模块

  1. UWP 应用程序 - 用于用户交互

  2. UMDF 驱动程序 - 它具有用于与服务器和 Tx 发出信号的核心堆栈,来自/到服务器的视频数据的 Rx

  3. WinRT 组件 - 用于从 UWP App 访问 UMDF 驱动程序

我担心在 UMDF 模块中访问相机和渲染器(视频表面)和视频编解码器。

是否可以从 UMDF 驱动程序访问摄像头、视频编解码器和 Video Surface?

作为用于用户交互的 UWP 应用程序模块,它必须创建用于渲染的表面,我可以在 UMDF 访问该表面的句柄并在其上渲染视频数据吗?

我浏览了一些用于访问相机、视频编解码器和渲染的示例和 API,并观察到所有 UWP API 都非常紧密地集成在一起,不可能将表面或相机的句柄从 UWP 应用程序传递给 UMDF 驱动程序。

我在这里是否遗漏了一些东西,我可以与现有架构实现视频聊天吗?

0 投票
1 回答
221 浏览

c++ - 带有 CreateService 的 umdf2 驱动程序

我可以在 Windows 10 中使用CreateService和API 启动 umdf2 驱动程序吗?StartService我正在寻找我可以参考的任何运行示例。

我以前用 WDM 驱动程序做过,但目前我没有用 umdf2 驱动程序做过。这是代码

pDeviceName指驱动程序名称。代码执行失败,出现错误 2:

我在Win7和Win10都测试过,结果是一样的。