Apple DriverKit SDK摄像头驱动注册



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

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

你们谁能帮帮我?

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

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

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

最新更新