【问题标题】:USB port current valueUSB端口电流值
【发布时间】:2011-08-11 15:32:24
【问题描述】:

插入设备时是否可以获取USB端口电流值?

该值应该可以使用 C# 以编程方式获得。我需要的第二个参数是“USB 省电模式”。该属性的正确名称是“允许计算机关闭此设备以节省电源”。

我设法检测到设备(如果它已连接或断开)并正确读取数据。

这两个属性是属于 USB 设备还是属于 USB 端口?!

WinUSB Api 没有明确回答我的问题。

【问题讨论】:

    标签: c# .net usb


    【解决方案1】:

    您可以使用 WMI 获取 USB 端口属性

    public class MyClass
    {
        public static void Main()
        {
            var usbDevices = GetUSBDevices();
    
            foreach (var usbDevice in usbDevices)
            {
                Console.WriteLine("Device ID: {0}, PNP Device ID: {1}, Description: {2}",
                    usbDevice.DeviceID, usbDevice.PnpDeviceID, usbDevice.Description);
            }
        }
    
        static List<USBDeviceInfo> GetUSBDevices()
        {
            List<USBDeviceInfo> devices = new List<USBDeviceInfo>();
    
            var searcher = new ManagementObjectSearcher(@"Select * From Win32_SerialPort");
    
            foreach (var device in searcher.Get())
            {
                devices.Add(new USBDeviceInfo(
                (string)device.GetPropertyValue("DeviceID"),
                (string)device.GetPropertyValue("PNPDeviceID"),
                (string)device.GetPropertyValue("Description"),
                (string)device.GetPropertyValue("Name")
                ));
            }
    
            return devices;
        }
    
        class USBDeviceInfo
        {
            public USBDeviceInfo(string deviceID, string pnpDeviceID, string description, string name)
            {
                this.DeviceID = deviceID;
                this.PnpDeviceID = pnpDeviceID;
                this.Description = description;
                this.Name = name;
            }
            public string DeviceID { get; private set; }
            public string PnpDeviceID { get; private set; }
            public string Description { get; private set; }
            public string Name { get; private set; }
    
        }
    }
    

    查看下面的属性列表

    可用性应包含您正在寻找的信息

    http://msdn.microsoft.com/en-us/library/aa394413%28v=vs.85%29.aspx

    【讨论】:

      【解决方案2】:

      我认为您想要的大部分内容与 WinDDK 中的 WinUSB 没有任何关系,而更多的是与操作系统如何处理设备有关:

      http://msdn.microsoft.com/en-us/library/aa394504%28v=VS.85%29.aspx - 用于访问 USB 相关信息的 WMI 类
      http://www.acpi.info/DOWNLOADS/ACPIspec40a.pdf - ACPI 可以提供一些帮助

      如果您需要更深入地研究 USB,请参阅
      http://www.usb.org/developers - 所有相关的 USB 标准文档
      http://www.beyondlogic.org/usbnutshell/usb1.shtml - 一些有用的信息
      http://www.libusb.org/ - 以非常低的速度处理 USB 的库等级

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-27
        • 2021-03-07
        • 1970-01-01
        • 1970-01-01
        • 2010-11-29
        • 2010-12-11
        • 1970-01-01
        相关资源
        最近更新 更多