【问题标题】:Publishing information from IOKit KEXT on OS X在 OS X 上从 IOKit KEXT 发布信息
【发布时间】:2010-02-22 07:43:54
【问题描述】:

我在 Mac OS X 上有一个基于 IOKit 的内核扩展,它是 IOService 的子类。当此服务加载时,我需要从中发布其他特定的运行时信息,并且我需要它可以从用户空间访问,而无需发出一些特定的 IOUserClient 请求。有问题的信息基本上是字段\值对,它的格式在 KEXT 和它的用户空间包装库之间共享。当服务处于活动状态时,内容会随着服务内部某些特定事件的变化而变化。

在 Linux 上,我可以使用 /proc 文件系统中的文件来完成此操作。你能在 OS X 上建议类似的策略吗?也许与 IORegistry 相关?

谢谢。

【问题讨论】:

    标签: macos iokit


    【解决方案1】:

    结果证明这很容易。 您的 IOKit 服务(最终)继承自 IOService 类,该类又继承自 IORegistryEntry,该类表示您的服务在 IORegistry 中的条目实例,并提供一系列 setProperty\getProperty 方法来添加\更改\删除您自己在 IORegistry 中的字段进入您的服务。

    内存数据库中的 IORegistry 当然可以从用户空间以编程方式访问,您可以在其中搜索服务条目并读取它发布的信息。

    【讨论】:

      猜你喜欢
      • 2012-12-19
      • 1970-01-01
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      相关资源
      最近更新 更多