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

drivers - WinUSB 体系结构文档对 winusb.sys 实例的混淆

我正在尝试了解“WinUSB 体系结构和模块”文档,网址为:http: //msdn.microsoft.com/en-us/library/windows/hardware/ff540207%28v=vs.85%29.aspx

在图中,我看到了 winusb.sys 的多个实例(编号为 1 到 3),支持多个用户模式“设备接口”A 到 C。叙述中说“下图显示了一个包含多个实例的 USB 驱动程序堆栈” Winusb.sys”。

然而,叙述还说“只有一个已加载的 Winusb.sys 实例”。嗯?这如何与显示多个实例的图表和前面的叙述相协调?而且我没有看到关于 PDO 的那段的其余部分如何与关于 Winusb.sys 的一个实例的令人费解的评论相关联。

线索有人吗?谢谢!

0 投票
1 回答
2062 浏览

c++ - WinUSB 模板丢失

我想在 c++ 上试验 USB 驱动程序。我正在使用 Visual Studio Express 2013,但找不到 WinUSB 模板。我看过这个指南。但是它适用于 Visual Studio Ultimate/Pro 2012。有人可以帮助我吗?

提前致谢!

0 投票
0 回答
242 浏览

c# - C# 处理两个 USB 输入数据流

我正在尝试编写一个控制台应用程序,该应用程序可以使用 WinUSB 驱动程序显示和记录从两个 USB 设备传入的两个数据流。

每个数据流由 30 个字符长的文本消息组成,这些消息以 1 毫秒到 200 毫秒之间的随机间隔发送。

解决该问题的最佳一般方法是什么?

我试过以下:

  1. 在单个主线程中轮询每个设备 - 丢失了许多消息。

  2. 使用全局队列,在单独的线程中轮询每个设备,将消息填充到队列中。然后在主线程中出队和处理。使用适当的锁进行排队和出队。经过几秒钟的正常工作后,来自一台设备的所有消息都会停止显示。

这是我用于每个设备的侦听器线程:

这是主线程循环:

0 投票
1 回答
2686 浏览

c# - 如何从 .NET 桌面应用程序安装没有 [DefaultInstall] 部分的 INF 驱动程序?

我已经为基于WinUsbDriver的复合设备(带有 MI_## 部分的硬件 ID)创建了一个驱动程序。

关键是“模板”不包含[DefaultInstall]部分,因此我不能P/Invoke InstallHinfSection功能:

在第一次连接复合设备之前,我想创建 INF 文件并使用应用程序代码安装它们。

如何从 .NET 桌面应用程序安装没有[DefaultInstall]部分的 INF 驱动程序?

0 投票
1 回答
411 浏览

c++ - USB 3.0 上的 WinUsb ControlTransfer

我目前正在通过对 USB 设备进行编程来学习。但不幸的是,我遇到了一些问题,这些问题可能是由于不了解所有情况而出现的。

情况是我通过 ControlTransfer 查询了我的设备,因为这在 USB 2.0 上就像在 USB 3.0 上的魅力一样。因此,我试图了解它为什么会失败。从 USB 2.0 到 USB 3.0 是否有任何细微变化?

0 投票
3 回答
1204 浏览

c++ - #包括在 MFC 应用程序中产生编译器错误

我有一个由 VS2010 生成的通用 SDI 应用程序,我想用它来测试 WinUsb API。我安装了当前版本的 WDK。根据我在其他地方阅读的帖子,我应该能够将 VS2010 项目包含路径设置为指向 WDK 并添加包含 WinUsb.h 来执行此操作。所以我将它添加到 stdafx.h 如下

但是当我编译时出现错误

它抱怨的结构是

并且 IDE 已将 _MP 下划线标记为红色。

0 投票
1 回答
426 浏览

winusb - WinUSB_AbortPipe 挂起

如果我在 WinUSB_ReadPipe() 启动时调用 WinUSB_AbortPipe(),我会进入死锁状态。我运行了此处提供的调试跟踪日志。以下是出现问题的日志中的最后 5 行。我认为 ReadPipe 一定错过了信号,而 AbortPipe 正在等待 ReadPipe 完成。

在我的设计中,我将 IN 端点异步读取到缓冲区中。我发现最好将读取操作的超时设置为无限,因为当我导致 STALL 发生时驱动程序讨厌它(遇到其他问题)。所以我需要让断开序列导致线程唤醒以意识到我们需要关闭。有没有办法安全地做到这一点?

0 投票
0 回答
1671 浏览

windows - WinUSB 读取/写入重叠 I/O

有没有人建议使用 WinUSB API 进行重叠读/写?我编写的代码总是超时 - 我怀疑我错误地使用 API 来进行重叠读/写。有没有人有什么建议?

0 投票
1 回答
479 浏览

visual-c++ - 无法使用 VC++ 2013 中的 WinUsb_ReadPipe 函数从 Mc Device 读取值

我遇到了一个与 winusbReadpipe 函数相关的问题。我正在使用 Pic18f4550 Mc(XC8 编译器)和 VC ++ 2013(MFC)。

我只是想从设备/主机读取和写入。Microchip 提供的示例程序运行良好,我能够从主机向设备中的所有端点 01、02、03 发送数据。

但是我无法阅读从设备到主机的任何反馈。我正在两个单独的线程中读取和写入数据。我的想法是只阅读在我的演示板上按下的按钮的反馈,或者至少是回显命令。看来,它只是在读取功能中输入一次,然后就停止了。不确定。

我尝试通过互联网搜索并实施了不同论坛中给出的所有建议,但迄今为止没有成功。最糟糕的是我试图在 Microchip 论坛上发布我的查询,但无法让自己注册,它总是说管理员会批准我的 ID,但还没有发生任何事情。

下面是我的设备端和主机端代码。请告诉我是否还有其他需要。

我期待您对此的支持。

谢谢,

拉胡尔


VC++ 代码:


阅读线程代码



在 VC++ 中声明的用于使用读/写管道函数的头文件



微控制器代码


变量声明部分



描述符



为批量传输初始化 USB



数据传输代码,注意:_EP01_Out =0x01 & _EP01_IN =0x81



代码结束


0 投票
2 回答
389 浏览

windows - 从用户应用程序安装 winusb 驱动程序

请任何人都可以直接给我实现 Windows 的下一个功能。

我有连接到 PC 的 USB 设备(它是 JTAG 编程器。)我知道这个硬件的 VID 和 PID。我需要:

1 检查这个硬件使用什么类型的驱动程序(检测winusb驱动程序就足够了。也许我需要读取注册表?)

2 如果驱动程序不是 winusb,我需要从我的应用程序中为此 USB 设备安装 winusb 驱动程序。