我正在尝试编写一个简单的轻量级应用程序,它将告诉您最后连接的USB驱动器是否以usb 3或usb 2速度进行协商。 到目前为止,我只使用一些开源代码成功显示最后连接的驱动器与Win32_DiskDrive,但我无法检索有关它运行的设备速度的任何信息。 我发现Win32_USBControllerDevice确实有" negotiatedspeed"属性。 但我无法找到有关如何使用它构建控制台应用程序的任何有用资源。 也许某人有一个代码片段供我使用? 谢谢你的帮助!
答案 0 :(得分:0)
我找到了一个有效的解决方案here。
它是如何工作的?好吧,它列举了USB主机控制器。获取根集线器并枚举拥有它的端口。如果连接了设备且它不是集线器,则它会显示以下所需信息:
示例代码:
private static void Main( string[] args )
{
var hostCtrls = USB.GetHostControllers();
foreach ( var hostCtrl in hostCtrls )
{
var hub = hostCtrl.GetRootHub();
foreach ( var port in hub.GetPorts() )
{
if ( port.IsDeviceConnected && !port.IsHub )
{
var device = port.GetDevice();
Console.WriteLine( "Serial: " + device.DeviceSerialNumber );
Console.WriteLine( "Name: " + device.Name );
Console.WriteLine( "Speed: " + port.Speed );
Console.WriteLine( "Port: " + device.PortNumber + Environment.NewLine );
}
}
}
Console.ReadLine();
}