来自 C 代码的驱动程序(自动加载、kext、lkm)

来自 C 代码的驱动程序(自动加载、kext、lkm)

我曾在 StackOverflow 上提出过一个问题,以为这是提问的正确地方,但他们将我引导到这里,因为他们认为这是一个与超级用户相关的主题。所以我就在这里 :)

我想问您如何在 Mac 上自动加载针对特定设备的驱动程序。

我已经用 C 编写了一个驱动程序,现在我想知道如何在我的设备插入时在我的 macos(/linux/windows) 环境中运行此程序。简而言之:如何通过系统默认识别此设备是否通过供应商+产品 ID 插入 mac(或插入 linux 或 windows)并启动我的驱动程序?或者如何在 kext 中转换我的 C 驱动程序并自动加载它?在 lkm 中?(windows 的 dll(?)?)

感谢您!

PS,我知道有一些用于内核交互的特定于操作系统的 API,但目前,如果我可以从“接近无代码”的内核扩展加载我的 C 驱动程序,我将不胜感激,我想要实现的是:

1 - 当我插入 USB 设备时,我的系统能够识别它
2 - 我的系统加载我的自定义内核扩展。3
- ... 将运行我的外部 C 程序来处理设备。
(4- 当然,完成后,清除所有内容)

这是否可能,或者我别无选择,只能使用内核 API?

非常感谢!

相关内容