问题标签 [winusb]

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 回答
2174 浏览

javascript - 智能卡读卡器和 ChromeApp

我想制作一个可以访问 USB 智能卡读卡器(HID Global OmniKey 3121)的 Chrome 应用程序。

有人成功地做到了这一点吗?

不幸的是,我无法使用usb.getDevices.

script.js(由index.html调用,它本身由background.js onLaunched调用):

该设备在清单中声明,并在扩展页面中被 Chrome 识别。

预先感谢您的帮助。

编辑

这是我的manifest.json

3 个允许的设备是:

  1. 诺基亚 Lumia 920
  2. 戴尔光电鼠标
  3. OmniKey 智能卡读卡器 3121

usb.getDevices或仅识别鼠标usb.findDevices。只有鼠标由 列出usb.getUserSelectedDevices

0 投票
1 回答
5196 浏览

raspberry-pi2 - Windows 10 IoT 上的 WinUSB 驱动程序

我正在尝试使用 Windows 附带的 WinUsb.sys 驱动程序(包括 Raspberry Pi 2 的 Windows 10 IoT)。使用 devcon.exe 我可以看到我正在尝试使用的 USB 已连接(名为USB\VID_1234&PID_ABCD\5&3753427A&0&4),但我不知道如何强制它使用 WinUsb.sys 驱动程序。

在 microsoft.com 上找到了一些说明,但这似乎适用于标准 Windows 安装,您可以在其中使用设备管理器(我在 IoT 上没有)。此页面上的 INF 文件示例还引用了 CAT 文件,我认为这是某种驱动程序签名,我不知道如何生成它(或者我什至需要)。还有一个对 Windows NT ( Signature = "$Windows NT$") 的引用,我不知道是否需要针对 IoT 进行更改(或者是否需要针对 IoT 更改其他任何内容)。

那么,使用 devcon.exe 和某种 INF 文件,如何让 Windows IoT 使用 WinUsb.sys 作为我连接的 USB 设备的驱动程序?

0 投票
2 回答
152 浏览

c# - Console.writeline() 用winUSB 实例化一个对象?

我在 C# 中使用 WinUSB 与使用批量传输的 PIC4550 通信,并且遇到了一个奇怪的问题。

当前代码可以正常工作,但仍然包含一些我想删除的调试 Console.Write() 行,因为它们使代码变得混乱。删除它们并使用调试器单步执行代码也可以正常工作。

不幸的是,当我删除调试行时,代码停止工作。“结果”字节数组返回为 null,并引发 null 引用异常。

这里发生了什么?

0 投票
1 回答
2085 浏览

c++ - 来自 MSDN Microsoft 的 WinUSB 教程

我一直遇到问题,要按照Microsoft 的 MSDN 的基于 WinUSB 模板编写 Windows 桌面应用程序的教程进行操作。按照说明,在我们需要创建 WinUSB 应用程序的步骤中,网站告诉我们将创建两个项目,但在我的应用程序中只创建一个项目

我正在使用Microsoft Visual Studio Community 2015,并且我已经安装了WDK注意: 我使用的是 Windows 10 64 位。

以下是教程的一部分,说明创建了两个项目

在此处输入图像描述

下面是我的解决方案资源管理器的屏幕截图:

来自我的 Visual Studio Community 2015 的解决方案资源管理器

你能帮我弄清楚发生了什么并帮我解决这个问题吗?

0 投票
0 回答
598 浏览

windows - 无需安装程序即可安装 WinUSB

我有一个使用 WinUSB 驱动程序与设备通信的应用程序。应用程序安装程序预安装设备驱动程序,该驱动程序具有标准 WinUSB inf 文件,其中包括 Windows XP 的 WinUSB 辅助安装程序(WinUSB 不附带)。

如果用户在运行应用程序之前插入设备,一切都很好:驱动程序已安装,coinstaller 安装 WinUSB,应用程序运行。

如果用户在插入设备之前尝试运行应用程序,则 WinUSB 尚未安装并且应用程序拒绝运行(因为它链接到 winusb.dll)。

我确定我看到了一些关于 WinUSB 安装程序的东西,它可以从应用程序安装程序运行,而不需要 coinstaller,但我现在找不到它。

有这样的安装程序吗?或者,有什么方法可以强制 coinstaller 从应用程序安装程序运行?

0 投票
1 回答
545 浏览

windows - 同时安装 WinUSB 和 libusb

安装 WinUSB(以便我可以使用 libusb)后,每当我将 USB 闪存驱动器插入 PC 的 USB 端口时,Windows 不再识别它并且不会在文件资源管理器中放置新的驱动器号。

因此,如果我安装了 WinUsb 驱动程序,libusb 可以工作,但 windows 文件资源管理器没有。

有没有办法让 libusb 能够与大容量存储一起使用,并且让 Windows 像往常一样看到 USB 驱动器?

谢谢

0 投票
0 回答
513 浏览

c# - FindAllAsync 在 C# 中返回空的 USB 设备

我正在通过 USB 与 ESP 301 电机控制器通信(或尝试)。如果需要,请参阅此处获取文档(PDF)

为了做到这一点,我正在使用 C# 并具有以下功能:

但是,该DeviceInformation.FindAllAsync(aqs)调用返回一个空容器。

我已修改应用清单以包含以下内容:

这是我最不确定的一点,我正在努力寻找有关此的更多信息。

在一个单独的常量类中,我定义了以下内容:

这一切似乎都是正确的,我已经使用 Microsoft 分发的 USB View 应用程序验证了供应商和产品 ID:

USB 视图

调整UsbDevice.GetDeviceSelector调用以使用常量文件中定义的 GUID,如下所示:

似乎也没有改变任何东西。

我知道容器是空的,因为我打印到控制台的计数是 0,而且我得到一个超出范围的异常。

我正在打印的 aqs 字符串如下所示:

System.Devices.InterfaceClassGuid:="{DEE824EF-729B-4A0E-9C14-B7117D33A817}" AND System.Devices.InterfaceEnabled:=System.StructuredQueryType.Boolean#True AND System.DeviceInterface.WinUsb.DeviceInterfaceClasses:~="{4D36E978- E325-11CE-BFC1-08002BE10318}"

我已尝试提供尽可能多的信息,您可以提供的任何帮助将不胜感激。谢谢你。

0 投票
1 回答
585 浏览

windows-10-mobile - 如何在 Windows Phone 10 上安装 WinUSB .INF 文件?

我的 Windows Phone 10 移动设备可以在 OTG 模式下操作 USB,例如我可以插入 USB 闪存。我想将我的自定义设备连接到 Windows Phone 并通过手机上的 Windows 应用商店应用程序使用它。理论上,我可以安装一个为我的设备定义 WinUSB 接口的 .INF 文件。

如何在 Win 10 手机上安装 .INF 文件以启用 WinUSB 访问我的设备?

0 投票
1 回答
890 浏览

windows-10-iot-core - 树莓派上的 WinUSB 应用程序(win10 IoT)

我想在带有 windows iot 的树莓派上安装和讨论我自己的 USB 设备。为此,我只是在 Windows 10 IoT 上为 arm 创建了一个 inf 文件,例如 WinUSB 驱动程序。设备被覆盆子识别(在连接设备的启动列表中看到)。那我想和设备商量一下。

首先,我尝试使用“winusb.dll”,但我需要使用不能为 ARM 编译的库“SetupApi”。(我在 Windows PC 上使用了这个解决方案并与设备正确通信)。

您是否知道如何与 windows iot 上的 winusb 设备正确通信?提前感谢您的回答。

所以,我尝试迁移到 Windows.device.usb,但我没有成功连接到设备。当我调用 FromIdAsync() 函数时出现异常。与以下问题完全相同:Can't access USB device in Universal App

0 投票
4 回答
12956 浏览

usb - 如何使用 WinUSB?

这是我之前的问题的后续,需要为 USB 外围设备编写驱动程序吗?

背景

我正在使用 STM32 微控制器(裸机/无操作系统)设计 USB 外围设备。该设备偶尔会连接到 Windows PC,并在每个方向传输几 KB 的数据。将有一个使用专有协议(即用于 USB 有效负载)控制数据传输的定制 PC 应用程序。

PC 将永远是主机(发起者)——它会发送命令,设备会发出响应,在单个命令或响应中,每个方向都有多达几百字节的数据。我想我会想使用 USB 批量传输模式。

选项 1 - USB CDC

据我了解,一种选择是我可以使用 USB 通信设备类 (CDC)。在设备方面,我可以将 ST 的示例代码用于 USB CDC,例如来自STM32Cube。在 PC 端,设备将显示为虚拟 COM 端口 (VCP)。然后在软件中,我基本上会有一个原始的双向流,在它之上我必须定义我的消息格式、命令等。

  1. 我是否正确解释了这一点?

选项 2 - WinUSB

我很难弄清楚这是什么以及如何使用它。

  1. WinUSB 与 USB 设备类有什么关系?它似乎起到“通用”USB 类的作用,但我找不到任何说明它的文档。

  2. WinUSB 是否提供任何内置的消息分隔符?例如, WinUsb_WritePipe是否将缓冲区的内容作为原子单元向下发送到设备?或者我只是得到像 VCP/UART 这样的原始流?

  3. 如何在设备上实现 WinUSB?有可用的示例代码吗?(最好是STM32。)

选择

  1. 在为我的应用程序选择选项 1 和 2 时,有哪些相关考虑因素?