首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows8中的银行交换机通用串行总线设备

Windows8中的银行交换机通用串行总线设备
EN

Stack Overflow用户
提问于 2013-05-20 08:51:48
回答 1查看 404关注 0票数 7

USB 2.0标准支持禁用单个集线器端口。我正在寻找一个可以在Windows8下从用户代码中调用的应用程序接口,特别是使用现有的Windows用户模式驱动程序在C#或C++中禁用集线器端口。

看起来禁用集线器端口的IOCTL在WDF中已被弃用。

我已经构建并使用了DevCon -它将通过DDK禁用设备,但不会禁用集线器端口。

WinUSB是一个强大的接口,它需要将WinUSB.sys指定为您的驱动程序堆栈。但是,我不认为它的库setupapi.lib和winusb.lib提供这种级别的集线器控制。

如果能指向Windows8中正确的用户模式应用程序接口,尤其是C#界面,我会非常感激。如果不存在这样的API,知道这一点也是非常有帮助的。

--增加了6/3:由于没有关于这方面的信息,我们现在正在研究一种基于软件的银行切换算法,该算法可以直接禁用和重新启用设备。我们希望能够以任意大小构建它,但当然这项技术在这一点上还没有得到证实。我会让这个帖子保持最新的进度。

EN

回答 1

Stack Overflow用户

发布于 2013-05-27 17:32:42

您是否考虑过使用一些硬件来实现相同的目标?

由于似乎还没有人有一个纯软件的解决方案,这很可能被证明是最快的方法。此外,它将完全独立于操作系统,这可能有助于未来的可维护性。

一种简单的银行切换方法

作为一个非常基本的示例,您可以使用现成的串行中继盒(例如this one)来控制分别通向所有集线器的电源。这样,您就可以一次启用一个“终端集线器”来访问连接到该集线器的设备。一定要使用只有在有外部电源的情况下才能工作的自供电集线器-我见过相当多的有电源的集线器在没有外部电源的情况下仍然可以连接。

严重的黑客攻击:一个DIY USB代理设备

既然您提到过您有嵌入式软件开发的经验,那么您还可以考虑构建一个直通设备,作为集线器(带设备)和主机之间的“代理”。它可以向下游集线器发送所需的USB命令,以禁用/启用端口。如果不需要高数据速率,可以使用Arduino和USB Host Shield构建这样的设备。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16641109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档