我想知道是否可以使用域 PF_SYSTEM 下的套接字在 2 个 kext 模块之间实现双向通信通道。这种方法主要用于驱动程序和用户空间代理之间的通信。
在我的特殊情况下,我有一个基于 IOKit 的模块,另一个是具有启动和停止回调函数的简单内核模块,我想在它们之间传递一些小消息。
你认为这种方法适合我的需要还是有其他更好的方法(共享内存?马赫端口?)
编辑,在深入挖掘之后,也许可以选择通过如下修改客户端驱动程序 plist 文件将 API 从一个驱动程序导出到另一个驱动程序.. 可能吗?
<key>OSBundleLibraries</key>
<dict>
<key>com.driver.server_driver</key>
<string>1</string>
然而,这不起作用,因为当我在服务器驱动程序已经加载(从 中可见kextstat
)之后尝试手动加载客户端驱动程序时,我得到了No kexts found for these libraries
错误。