【问题标题】:Current USB Device Power Draw当前 USB 设备功耗
【发布时间】:2015-07-26 02:39:32
【问题描述】:

我正在编写一个 USB 驱动程序并且有一个弹出窗口,其中包含有关当前所选 USB 设备的特定信息。

但是,我似乎无法找到任何方法来确定设备当前使用的功率。我可以获取端口上当前可用的电源,但不能获取设备本身。

有一些 API 可以请求额外的电力并释放它,但我找不到任何东西可以告诉我设备当前的电力消耗是多少。

我知道这是可能的,因为其他实用程序可以显示此信息,但是,IOKit 似乎缺乏通常级别的 Apple 文档!

【问题讨论】:

  • 除非有一种实际的方法可以读取 USB 设备的实际功耗,否则我发现的最佳解决方案是读取 IOUSBConfigurationDescriptor 结构的 MaxPower 字段。

标签: macos usb iokit


【解决方案1】:

IOUSBDevice 节点上的“Requested Power”属性是否与您使用的设备相对应?这是配置描述符中“bMaxPower”属性的值,即设备以 2mA 为单位公布的最大功耗。 USB3 的情况变得有点复杂,可以为超高速设备提供的额外 400mA 是单独记录的,而且我认为为不遵循 USB3 的 iPod、iPhone 等提供的额外电力又有所不同规格。您需要为此检查 IOUSBDevice 源代码,并可能使用 IORegistryExplorer 进行一些挖掘。

【讨论】:

  • 是的,我现在正在使用 bMaxPower 字段,并且还添加了请求的“额外”功率,对于我的使用而言,它可能总是为零,但可以肯定的是,它永远不会受到伤害。感谢您的回答! :)
猜你喜欢
  • 1970-01-01
  • 2011-11-10
  • 2016-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-29
  • 2013-11-17
  • 1970-01-01
相关资源
最近更新 更多