gpt4 book ai didi

macos - 监控 Thunderbolt 端口连接的变化

转载 作者:行者123 更新时间:2023-12-04 18:02:31 24 4
gpt4 key购买 nike

我正在处理一项需要监控 Thunderbolt 端口连接变化的要求。 (当连接或断开 Thunderbolt 电缆时)。

我尝试使用 IOServiceMatching(kIOUSBInterfaceClassName) 来自 IOKit 框架 但我无法监控 Thunderbolt 端口的变化。

有什么办法可以实现吗?任何帮助表示赞赏。

最佳答案

Thunderbolt 设备(使用 Thunderbolt 端口的 DisplayPort 部分的显示器除外)是 PCI 设备,而不是 USB,因此它们将在 IOService 注册表中显示为 IOPCIDevice s。然而,它们也会显示为 IOThunderboltPort Thunderbolt 子树中的对象,其中“PCI 路径”属性将指示相关 IOPCIDevice 的 IOService 路径。 .通过监控IOThunderboltPort的出现和消失服务,并检查它们的 PCI Path 属性,可以避免匹配其他类型的 PCI 设备。

为了说明我在说什么,打开 IORegistryExplorer 或 IOJones 并热插拔一个 Thunderbolt 设备;您应该会看到 IOThunderboltPort(以及一堆其他类型的相关对象,例如 AppleThunderboltPCIUpAdapter 等)和 IOPCIDevice(以及用于 Thunderbolt 总线工作的 PCI2PCI 桥接器)。 (或者,您可以使用 ioreg 在热插拔之前和之后拍摄快照。)

所以总而言之,我会匹配 IOThunderboltPort服务,忽略任何没有 PCI 路径属性的,并查找对应的 IOPCIDevice在 IO Registry 中,用于访问实际设备的那些。

关于macos - 监控 Thunderbolt 端口连接的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32759554/

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