问题标签 [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.
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 的一个实例的令人费解的评论相关联。
线索有人吗?谢谢!
c++ - WinUSB 模板丢失
我想在 c++ 上试验 USB 驱动程序。我正在使用 Visual Studio Express 2013,但找不到 WinUSB 模板。我看过这个指南。但是它适用于 Visual Studio Ultimate/Pro 2012。有人可以帮助我吗?
提前致谢!
c# - C# 处理两个 USB 输入数据流
我正在尝试编写一个控制台应用程序,该应用程序可以使用 WinUSB 驱动程序显示和记录从两个 USB 设备传入的两个数据流。
每个数据流由 30 个字符长的文本消息组成,这些消息以 1 毫秒到 200 毫秒之间的随机间隔发送。
解决该问题的最佳一般方法是什么?
我试过以下:
在单个主线程中轮询每个设备 - 丢失了许多消息。
使用全局队列,在单独的线程中轮询每个设备,将消息填充到队列中。然后在主线程中出队和处理。使用适当的锁进行排队和出队。经过几秒钟的正常工作后,来自一台设备的所有消息都会停止显示。
这是我用于每个设备的侦听器线程:
这是主线程循环:
c# - 如何从 .NET 桌面应用程序安装没有 [DefaultInstall] 部分的 INF 驱动程序?
我已经为基于WinUsbDriver的复合设备(带有 MI_## 部分的硬件 ID)创建了一个驱动程序。
关键是“模板”不包含[DefaultInstall]部分,因此我不能P/Invoke InstallHinfSection功能:
在第一次连接复合设备之前,我想创建 INF 文件并使用应用程序代码安装它们。
如何从 .NET 桌面应用程序安装没有[DefaultInstall]部分的 INF 驱动程序?
c++ - USB 3.0 上的 WinUsb ControlTransfer
我目前正在通过对 USB 设备进行编程来学习。但不幸的是,我遇到了一些问题,这些问题可能是由于不了解所有情况而出现的。
情况是我通过 ControlTransfer 查询了我的设备,因为这在 USB 2.0 上就像在 USB 3.0 上的魅力一样。因此,我试图了解它为什么会失败。从 USB 2.0 到 USB 3.0 是否有任何细微变化?
c++ - #包括在 MFC 应用程序中产生编译器错误
我有一个由 VS2010 生成的通用 SDI 应用程序,我想用它来测试 WinUsb API。我安装了当前版本的 WDK。根据我在其他地方阅读的帖子,我应该能够将 VS2010 项目包含路径设置为指向 WDK 并添加包含 WinUsb.h 来执行此操作。所以我将它添加到 stdafx.h 如下
但是当我编译时出现错误
它抱怨的结构是
并且 IDE 已将 _MP 下划线标记为红色。
winusb - WinUSB_AbortPipe 挂起
如果我在 WinUSB_ReadPipe() 启动时调用 WinUSB_AbortPipe(),我会进入死锁状态。我运行了此处提供的调试跟踪日志。以下是出现问题的日志中的最后 5 行。我认为 ReadPipe 一定错过了信号,而 AbortPipe 正在等待 ReadPipe 完成。
在我的设计中,我将 IN 端点异步读取到缓冲区中。我发现最好将读取操作的超时设置为无限,因为当我导致 STALL 发生时驱动程序讨厌它(遇到其他问题)。所以我需要让断开序列导致线程唤醒以意识到我们需要关闭。有没有办法安全地做到这一点?
windows - WinUSB 读取/写入重叠 I/O
有没有人建议使用 WinUSB API 进行重叠读/写?我编写的代码总是超时 - 我怀疑我错误地使用 API 来进行重叠读/写。有没有人有什么建议?
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
代码结束
windows - 从用户应用程序安装 winusb 驱动程序
请任何人都可以直接给我实现 Windows 的下一个功能。
我有连接到 PC 的 USB 设备(它是 JTAG 编程器。)我知道这个硬件的 VID 和 PID。我需要:
1 检查这个硬件使用什么类型的驱动程序(检测winusb驱动程序就足够了。也许我需要读取注册表?)
2 如果驱动程序不是 winusb,我需要从我的应用程序中为此 USB 设备安装 winusb 驱动程序。