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

c# - 是否可以将我们的 Windows 手持应用程序用作 USB 接收器?

如果问题很基本,我很抱歉,我对 USB 编程缺乏经验,我可能会在这里遗漏一些概念细节。

对于我们的工业解决方案,我们应该在我们的 PC wpf 应用程序和 windows Embedded HH 8.1 应用程序之间提供通信。理想情况下,我们希望这是通过 USB 进行的。

我看到很多示例代码从主机角色直接连接到 USB 设备。

然而,在我们的例子中,Windows Embedded HH 设备 (Panasonic FZ-E1) 将具有设备角色监听。我找不到任何方法来注册通过 USB 事件从我们的 PC 应用程序发送的原始数据。我检查了 UMDF(用户模式驱动程序框架),其中包含有关为 USB 设备编写驱动程序的示例,但它似乎适用于设备制造商,我们不是 Panasonic HH 的制造商,我们不应该/不能使用我们自己的驱动程序,我们必须使用已有的 WinUSB 驱动程序。

Windows Embedded 8.1 HH 有一些与 windows phone 不同的 USB api,但 API 中提供的所有功能似乎都像连接到具有主机角色的外部 USB 设备一样。当我们使用 USBlyzer 时,我看到有一些 USB 流量从 PC 流向设备,因此看起来 HH 应该可以拥有监听设备的角色。我在这里缺少什么,有什么想法吗?

非常感谢任何帮助/指导。

PS:我还尝试了 windows 连接 api 检查 windows phone 电动工具的源代码,但似乎用于处理通过代理传输的插件包的 dll不再适用于较新版本的 windows phone。

0 投票
0 回答
499 浏览

visual-studio - Visual Studio 2015 总是因 KMDF/UMDF 部署而崩溃

当我尝试Project Properties -> Driver Install -> Deployment部分设置目标设备时,我的 Visual Studio 2015 总是崩溃。

在此处输入图像描述

在这里,如果尝试配置设备,VS2015总是崩溃。对于 KMDF/UMDF 类型的项目,此行为是相同的。

在此处输入图像描述

我试图重新安装 WDK,但最终结果是一样的......我什至无法完成 MSDN 上的 UMDF/KDMF 项目的两个基本教程......

我该怎么做才能解决这个问题?

0 投票
1 回答
119 浏览

windows - StartSoftwareTriggerAsync 应用API调用对应的POS框架调用是什么?

我正在 Windows 10 上开发条形码扫描仪项目,我们将使用软件触发。我从应用程序中获得了提到的 API 来实现软件触发,但无法获取有关这些调用的驱动程序端处理程序的信息?

有人可以建议这个软件触发 API 对应的 POS 框架调用是什么吗?

提前致谢。

问候, 塔杰佩尔

0 投票
1 回答
2911 浏览

c++ - UMDF,无法为 Microsoft 定义的类指定 [ClassInstall32] 部分

我正在学习下一个教程:如何编写您的第一个 USB 客户端驱动程序

而且我在编译项目时遇到了问题,我遇到了下一个错误:

在此处输入图像描述

我试图按照教程中的描述执行这些步骤,但在编译项目时总是出现上述错误。

另外,我尝试搜索,但没有找到任何有用的信息。

可能的附加信息,这可能会帮助您给我一条建议:

  • INF 文件: http: //pastebin.com/71d6bbQm
  • 使用 Windows 10、最新的 WDK 和 VS2015
  • 已经开始完全USB User-Mode Driver按照教程中提到的模板
0 投票
0 回答
81 浏览

windows-runtime - 在 UMDF 驱动程序中使用 Windows 商店应用程序 DLL

我有一个 Windows 商店 DLL,它从相机设备中获取图像。我想在我的驱动程序文件[UMDF 2] 中使用这个 DLL 来获取图像。由于 DLL 是基于 windows 存储的 DLL,因此不能直接在驱动程序项目中使用。在 UMDF 驱动程序中使用 Windows 存储 DLL 的最佳方法是什么?

0 投票
0 回答
145 浏览

memory-management - 在 Windows 10 中的 2 个用户空间驱动程序(UMDF)之间共享内存?

Windows 10 上的 2 个用户模式(UMDF)2.0 驱动程序之间共享内存的方法是什么?

0 投票
1 回答
479 浏览

windows - 构建通用 Windows 驱动程序 (UMDF 2) 会导致链接错误

在遵循关于编写基于模板的通用 Windows 驱动程序 (UMDF 2) 的教程时(链接到 MSDN 教程),我在尝试在不修改模板代码的情况下构建时遇到以下错误。

错误 LNK1181 无法打开输入文件 'C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\um\x64\wpprecorderum.lib'

我从这里安装了最新的 Windows 10 WDK(链接到 WDK),发现这个文件存在于:C:\Program Files (x86)...\lib\10.0.10586.0\um\x64\ NOT C:\Program Files (x86)...\lib\10.0.1024.0\um\x64...

当我将 Windows 目标版本从 10.0.1024.0 更改为 10.0.10586 时,出现错误

错误未找到与 WDK 版本“10.0.10586.0”对应的 SDK。

我如何让它编译?我是否需要查找 WDK 的早期版本?

谢谢

0 投票
0 回答
129 浏览

wdf - 需要开发设备驱动,安装在系统上会创建多个虚拟串口

这是我的第一个 Windows 设备驱动程序,我被分配了一项从头开始开发 Windows 设备驱动程序的任务。当用户在 Windows PC 上安装此驱动程序时,它会在安装过程中要求用户输入用户需要的虚拟串行端口号,并在安装驱动程序后创建用户所需的虚拟端口号. 然后用户通过 USB 端口将他定制的打印机连接到 Windows PC。用户通过选择新创建的 9600 波特率、8 个数据位、无奇偶校验和 1 个停止位的虚拟串行端口,应该能够通过 Hyper 终端向打印机发送数据。

现在开始使用 Windows 7 系统,在该系统上安装了 Visual Studio 2015 以及来自 MSDN 网站的 Windows Driver Kit 10。我还从 GITHUB 下载了 Windows 驱动程序示例代码,这个示例库包含一个在 serial/Svirtualserial2 下的 virtualSerial UMDF 项目。该项目文件包含 2 个项目,一个是 Virtualserial2 项目,另一个是 FakeModem 项目,所以我删除了 FakeModem 项目(因为它对我没有用)并成功编译了源/VirtualSerial2 示例代码。编译后,在调试折叠中生成了一个 .dll(因为 UDMF 驱动程序具有 .dll 扩展名)文件,但我没有得到这个驱动程序的任何 .exe,所以我不确定如何在我的系统上安装这个驱动程序。

我也在浏览这个链接https://msdn.microsoft.com/en-in/library/windows/hardware/dn745911%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396列出了流程使用 WinDbg 调试 UMDF 驱动程序,在一个示例中,它还要求我们运行 .exe,所以我的第一个问题是如何生成驱动程序的 .exe 文件并在系统上对其进行测试。

除此之外,我还有一个疑问。在目标系统上安装驱动程序后(Windows 7 32 位,我需要将其链接到超级终端)。这样我就可以通过超级终端将命令和数据发送到我的打印机,我的驱动程序将负责从超级终端获取数据并通过 USB 将其发送到我的打印机。我怎样才能做到这一点?

我是否朝着正确的方向前进?

0 投票
1 回答
70 浏览

memory-leaks - Windows UMDF CComPtr IWDFMemory does not get freed

In my UMDF driver i have a IWDFMemory packed inside a CComPtr

The documentation of CComPtr says, If a CComPtr object gets out of scope, it gets automagically freed. That means this code should not create any memory leaks:

Also if I manually assign NULL to memory or call memory.Release() before scope end the memory does not get freed. I am wondering what is happening here?

0 投票
0 回答
200 浏览

driver - 如何正确获取 SCARD_ATTR_DEVICE_UNIT

我正在开发智能卡 UMDF Windows 驱动程序。我想实现以下行为:

通过使用 API 调用SCardListReaders列出所有连接的阅读器时,我想为每个连接的阅读器检索正确的友好名称。因此,例如,如果我有两个相同品牌的阅读器,我希望驱动程序将其返回:

我知道友好名称由属性组成,驱动SCARD_ATTR_VENDOR_NAME程序返回。SCARD_ATTR_VENDOR_IFD_TYPESCARD_ATTR_DEVICE_UNIT

我的问题是,在我的驱动程序中,我如何区分SmartcardBrand USBReader 0SmartcardBrand USBReader 1

SCARD_ATTR_DEVICE_UNIT当被要求时,我应该返回操作系统什么。我无法在驱动程序中使用和增加全局静态变量,因为每次连接新阅读器时都会启动一个新的 UMDF 主机进程(我可以在任务管理器中看到它),从而产生一个单独的新内存区域。

在 UMDF 驱动程序中计算设备实例的正确方法是什么?


我通过使用内存映射文件解决了这个问题。基本上,我的驱动程序的每个 UMDF 进程都会创建一个内存映射文件,其名称为读者的友好名称。当其他进程尝试创建具有相同名称的文件时,它表明驱动程序已在运行。

但是,当我连接使用我的驱动程序的阅读器,然后连接使用 Windows 本机驱动程序的阅读器时,会出现不一致。Windows 驱动程序将看不到我创建的内存映射文件并为其设备应用索引 0。

我发现,当加载 Windows 驱动程序时,它会SCARD_ATTR_VENDOR_IFD_TYPE从我的驱动程序(以及当前加载的所有其他驱动程序)SCARD_ATTR_VENDOR_IFD_TYPE查询。SCARD_ATTR_DEVICE_UNIT我想通过这种方式,Windows 驱动程序可以知道哪些设备单元被占用,并为它的阅读器应用一个免费的设备单元。