gpt4 book ai didi

c# - 有没有一种简单有效的方法可以在 C# 或 C/C++ 中列出所有 USB 设备?

转载 作者:行者123 更新时间:2023-11-30 17:44:23 25 4
gpt4 key购买 nike

我必须制作一个程序来监视 USB 端口,当插入 USB 设备(游戏 handle 、闪存驱动器、鼠标、ECC...)时,我会得到一个唯一的标识符(一个 deviceid 或其他东西就可以了)。< br/>起初,我尝试使用 system.management 类使用 C# 并每秒查询 cim_logicdevice 类以插入新设备。某些设备返回更多带有 DeviceID 的行,但这不是问题。问题是程序(在任务管理器中)占用的内存不断增长。这是源代码:
http://pastebin.com/dQv3cMQC

有没有办法避免内存使用的增长?
我必须用 C++ 或 C# 来完成这个程序,并且它必须是最有效的(因为它必须永远打开)。

最佳答案

我建议查看 WDK 中的 USBView 示例。如果您对此不熟悉,只需运行它 - 该工具会遍历系统上的整个 USB 树,并打印出每个设备的信息和描述符列表。

就您而言,我将从本示例中的 RefreshTree() 函数开始,然后您可以按照代码查看它如何枚举主机 Controller 、集线器和最终设备。对于您找到的每个设备,您可以查看接口(interface)描述符中的 bInterfaceClass,以了解其正在广告的接口(interface)类型。

获取此示例源代码的最简单方法是安装 7.1.0 WDK,当前可用:http://www.microsoft.com/en-us/download/details.aspx?id=11800

关于c# - 有没有一种简单有效的方法可以在 C# 或 C/C++ 中列出所有 USB 设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20021739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com