【发布时间】:2013-05-14 12:21:04
【问题描述】:
USB 2.0 标准支持禁用单个集线器端口。我正在寻找从 Windows 8 下的用户代码调用的 API,特别是使用现有的 Windows 用户模式驱动程序在 C# 或 C++ 中禁用集线器端口。
看起来禁用集线器端口的 IOCTL 在 WDF 中已被弃用。
我已经构建并使用了 DevCon - 它会通过 DDK 禁用设备,但不会禁用集线器端口。
WinUSB 是一个强大的接口,需要将 WinUSB.sys 指定为您的驱动程序堆栈。但是,我不认为它的库 setupapi.lib 和 winusb.lib 提供这种级别的集线器控制。
我非常感谢在 Windows 8 中指向正确用户模式 API 的指针,尤其是 C# 接口。如果不存在这样的 API,那么了解这也将非常有帮助。
-- 新增 6/3: 由于没有出现这方面的信息,我们现在正在研究一种基于软件的银行切换算法,该算法可以直接禁用和重新启用设备。我们希望能够以任意大小构建它,但当然该技术目前尚未得到证实。我会及时更新这个帖子。
【问题讨论】:
-
我希望这将被重新打开,因为我无法在其他任何地方找到此信息。如果需要更多编辑,请告诉我。
-
WinUSB 似乎是用于访问 USB 设备的 MS api。我不知道它是否会做你想要的,但它可能值得一看。另见stackoverflow.com/questions/12036077/usb-api-for-windows
-
感谢投票重新提出这个问题,因为它已经缩短并且更重要了。