Apple DriverKit SDK 相机驱动注册

Mic*_*ael 5 macos camera driver iokit driverkit

我是 Apple DriverKit SDK 的新手,我不清楚如何注册我的设备驱动程序,以便它可以作为操作系统中的相机使用。我是否必须在 IOService 的 Start 函数中注册流函数?我在互联网上搜索答案,但找不到。

我需要从自定义 USB 摄像头读取数据,然后通过自定义驱动程序使其可用。

你们有人能帮我吗?

pmd*_*mdj 1

对相机和视频捕获设备的支持不是作为 macOS 中的特殊 I/O Kit 类实现的(因此也不在 DriverKit 中),而是完全通过 Core Media I/O 框架在用户空间中实现。根据设备的类型,可能需要DriverKit组件。(例如 PCI/Thunderbolt,它不能直接从用户空间使用,或者 USB 设备,其中相机功能没有完全隔离到 USB 接口描述符)此 dext 将公开一个完全自定义的 API,然后可以从用户空间使用该 API基于 CoreMediaIO 的驱动程序。

从 macOS 13 (Ventura) 开始,应使用Core Media I/O扩展API 来实现驱动程序,因为该驱动程序将在其自己的独立进程中运行,并且可以在所有使用 Core Media 的应用程序中使用。

在此之前(macOS 12 及更早版本),仅存在所谓的设备抽象层 (DAL) 插件 API,其中涉及在捆绑包中编写动态库,任何希望使用该库的应用程序都可以按需加载有问题的设备。不幸的是,这引发了代码签名问题:使用强化的运行时和库验证标志构建的应用程序只能加载由 Apple 或与应用程序本身签名的同一团队签名的库。这意味着此类应用程序无法加载第三方相机驱动程序。此类应用程序的例子都是苹果自己的,包括 FaceTime。