问题标签 [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.
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。
windows - StartSoftwareTriggerAsync 应用API调用对应的POS框架调用是什么?
我正在 Windows 10 上开发条形码扫描仪项目,我们将使用软件触发。我从应用程序中获得了提到的 API 来实现软件触发,但无法获取有关这些调用的驱动程序端处理程序的信息?
有人可以建议这个软件触发 API 对应的 POS 框架调用是什么吗?
提前致谢。
问候, 塔杰佩尔
c++ - UMDF,无法为 Microsoft 定义的类指定 [ClassInstall32] 部分
我正在学习下一个教程:如何编写您的第一个 USB 客户端驱动程序。
而且我在编译项目时遇到了问题,我遇到了下一个错误:
我试图按照教程中的描述执行这些步骤,但在编译项目时总是出现上述错误。
另外,我尝试搜索,但没有找到任何有用的信息。
可能的附加信息,这可能会帮助您给我一条建议:
- INF 文件: http: //pastebin.com/71d6bbQm
- 使用 Windows 10、最新的 WDK 和 VS2015
- 已经开始完全
USB User-Mode Driver
按照教程中提到的模板
windows-runtime - 在 UMDF 驱动程序中使用 Windows 商店应用程序 DLL
我有一个 Windows 商店 DLL,它从相机设备中获取图像。我想在我的驱动程序文件[UMDF 2] 中使用这个 DLL 来获取图像。由于 DLL 是基于 windows 存储的 DLL,因此不能直接在驱动程序项目中使用。在 UMDF 驱动程序中使用 Windows 存储 DLL 的最佳方法是什么?
memory-management - 在 Windows 10 中的 2 个用户空间驱动程序(UMDF)之间共享内存?
Windows 10 上的 2 个用户模式(UMDF)2.0 驱动程序之间共享内存的方法是什么?
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 的早期版本?
谢谢
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 将其发送到我的打印机。我怎样才能做到这一点?
我是否朝着正确的方向前进?
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?
driver - 如何正确获取 SCARD_ATTR_DEVICE_UNIT
我正在开发智能卡 UMDF Windows 驱动程序。我想实现以下行为:
通过使用 API 调用SCardListReaders列出所有连接的阅读器时,我想为每个连接的阅读器检索正确的友好名称。因此,例如,如果我有两个相同品牌的阅读器,我希望驱动程序将其返回:
我知道友好名称由属性组成,驱动SCARD_ATTR_VENDOR_NAME
程序返回。SCARD_ATTR_VENDOR_IFD_TYPE
SCARD_ATTR_DEVICE_UNIT
我的问题是,在我的驱动程序中,我如何区分SmartcardBrand USBReader 0
和SmartcardBrand 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 驱动程序可以知道哪些设备单元被占用,并为它的阅读器应用一个免费的设备单元。