gpt4 book ai didi

c++ - 如何以编程方式检测 PC 是否具有 USB3 功能?

转载 作者:可可西里 更新时间:2023-11-01 10:37:17 25 4
gpt4 key购买 nike

这看起来应该是一个简单的问题,但我不确定如何最好地解决它。我看过一些关于如何检测连接的设备是 USB 2 还是 3 的帖子,但我需要知道 USB 3 端口是否可用,即使没有连接任何设备。

一种解决方案是遍历注册表中的“SYSTEM\CurrentControlSet\Services”键并与已知 USB3 服务的预设列表进行比较。我希望有更准确的东西,比如 IOCTL 调用。

我可以实现 C++(首选)或 C#。

在此先感谢您的帮助。

最佳答案

我是这样实现的。不是我正在寻找的解决方案。这基本上会告诉我系统上是否存在 USB 3.0 驱动程序。它不会检测系统上的硬件是否包括 USB 3.0 端口。更喜欢 C++ 中较低级别的东西。

如果有人能告诉我如何为此检测硬件(而不是渣而不贡献),我将不胜感激。谢谢!

    private bool IsUsb3()
{
string val = (string)Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\USBXHCI", "ImagePath", 0);
if (val != null) return true; // Microsoft
val = (string)Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\USBHUB3", "ImagePath", 0);
if (val != null) return true; // Microsoft
val = (string)Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\usb3Hub", "ImagePath", 0);
if (val != null) return true; // Microsoft
val = (string)Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\UCX01000", "ImagePath", 0);
if (val != null) return true; // Microsoft
val = (string)Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\nusb3hub", "ImagePath", 0);
if (val != null) return true; // Renesas
val = (string)Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\nusb3xhc", "ImagePath", 0);
if (val != null) return true; // Renesas
val = (string)Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\iusb3xhc", "ImagePath", 0);
if (val != null) return true; // Intel
val = (string)Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\iusb3hub", "ImagePath", 0);
if (val != null) return true; // Intel
val = (string)Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\iusb3hcs", "ImagePath", 0);
if (val != null) return true;

return false;
}

关于c++ - 如何以编程方式检测 PC 是否具有 USB3 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18366691/

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