问题标签 [iokit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - 我可以采取哪些步骤来消除代码中的错误?
我在 I/O Kit Driver 模板中编写代码如下:
构建此代码时,出现四个错误:
- 函数声明符后的预期函数体
stray '\357' in program
stray '\277' in program
stray '\274' in program
你能看到错误吗?
macos - 如何在终端中加载 i/o 套件驱动程序扩展?
现在我正在开发自己的驱动程序。我在 i/o kitDriver 模板中开发。我构建了我的代码,它成功执行但终端出现问题。我在头文件中以以下方式开发了代码
在.cpp
然后我在 IOKIT-info.plist 之后成功构建了上面的代码
IOKitPersonalities 字典我添加的以下五个内容
之后
在 OSBundleLibraries 字典中,我添加了两个条目
之后我再次成功构建它
来到终端加载我按照以下步骤
在终端之前,我找到 kext 文件路径并将该包复制到 /system/library/extension/
然后去终端
执行以下方式
嘿伙计们,请帮助我,重要的事情之一是每当我执行由通用驱动程序开发的 kext 文件时,它都会在终端中非常成功地执行。
我也是这个内核编程的初学者
macos - 我可以使用哪些命令在终端中加载 i/o 套件驱动程序?
我是新内核编程。我已经尝试加载此驱动程序 3 天。
我使用了很多命令来加载这个 kext 文件。但每次问题都是
终端。请任何人帮助我。
ensis-Mac-mini:~ ensis$ sudo su
sh-3.2# chown -R root:wheel /System/Library/Extensions/Driver.kext
sh-3.2# kextutil -n -t /System/Library/Extensions/Driver.kext 没有指定内核文件;
使用正在运行的内核进行链接。
/System/Library/Extensions/Driver.kext 无效;无法解决依赖关系。
/System/Library/Extensions/Driver.kext 无效;无法解决依赖关系。
/System/Library/Extensions/Driver.kext 无效;无法解决依赖关系。
/System/Library/Extensions/Driver.kext 的诊断:
验证失败:
警告:
发送到 IO 目录:
如何解决上述程序
更新: Info.plist:
filesystems - 从混合视频 DVD 安装 HFS+ 和 UDF
我开发了一个 Mac 软件(使用 DiscRecordingFramework 和 IOKit)来创建混合 Video-DVD。生成的 DVD 与 Video-DVD 规范完全兼容。混合磁盘托管 HFS+、UDF 和 ISO 文件系统。现在的问题是 Mac 系统自动挂载 HFS+ 文件系统,但 Mac 上的默认 DVD 播放器无法从 HFS+ 文件系统播放受 CSS 保护的电影。作为一种解决方法,我开发了一个脚本,它可以将 UDF 文件系统与 HFS+ 文件系统一起安装。该脚本实际加载 UDF2.1 内核扩展并挂载 UDF 文件系统。该解决方案有效,但不可取,因为它需要 root 密码。
是否可以开发一种自动检测混合磁盘并同时安装 HFS+ 和 UDF 文件系统的解决方案?此解决方案不应损害系统安全性。如果它一生中需要 root 密码一次,那是可以的,但如果每次使用磁盘时都需要 root 密码,则不可取。
任何帮助将不胜感激。
iphone - 如何开始为 iOS 开发配件?
我们希望开发可插入 30 针基座连接器的 iOS 配件。对于初学者来说,是否有一个很好的起点来讨论 EAAccessory 框架可以做什么和不能做什么?
Apress 在 2010 年 6 月发布了一本关于 EAAccessory 框架的书。这仍然相关吗,还是从那时起 Apple 引入了许多新的 API?是否有其他可用资源?
macos - 从 KEXT 与 Daemon 通信并阻塞直到从 Daemon 返回结果的最佳方式
在 KEXT 中,我正在通过 vnode 或文件范围侦听器侦听文件关闭。对于某些(非常少的)文件,我需要将文件路径发送到我的系统守护程序,它会进行一些处理(这必须在守护程序中发生)并将结果返回给 KEXT。在我得到守护进程的响应之前,需要阻止文件关闭调用。根据结果,我需要在近距离通话中进行一些操作并成功返回近距离通话。论坛上有很多关于KEXT通信相关话题的讨论。但它们不是决定性的,而且看起来很老(2002 年左右)。这个需求可以通过FtlSendMessage(...)
Win32 API 来处理。我正在寻找 Mac 上的等价物
以下是我看过并想总结一下我的理解:
- Mach 消息:提供非常好的双向通信方式,使用发送者和回复端口以及队列机制。但是,mach 消息 API(例如
mach_msg
、mach_port_allocate
、bootstrap_look_up
)似乎不是 KPI。mach_msg_send_from_kernel
可以使用mach API ,但仅此一项对双向通信没有帮助。我的理解对吗? - IOUserClient:这似乎更多地与从用户空间到 KEXT 的通信有关,然后从 KEXT 进行一些回调。我没有找到一种方法来启动从 KEXT 到守护程序的通信,然后等待守护程序的结果。我错过了什么吗?
- 套接字:这可能是最后一个选项,因为我必须实现从 KEXT 到守护进程的整个双向通信通道。
ioct
l/sysctl
: 我对他们了解不多。根据我的阅读,它不推荐使用,特别是对于双向通信- RPC-Mig:同样我对它们了解不多。从我所看到的看起来很复杂。不确定这是否是推荐的方式。
- KUNCUserNotification:这似乎只是从 KEXT 向用户提供通知。它不符合我的要求。
支持的平台是(10.5 起)。因此,查看要求,有人可以就该主题提出建议并提供一些指示吗?
提前致谢。
xcode - OSDictionary * Injection in IORegistry
I'm trying to create a new Dictionary and inject it in the IORegistry. I've managed to inject simple strings or data values but thats it.
My approach is via a modified IOPCIFamily.kext, and it's not for a specific purpose but just for learning.
My code for 1 line values is something like this
and another approach
propTable is the Parent Dictionary, so i must create a child Dictionary to which i can inject values with setObject parameter.
Does anyone have an idea on how to do this? I suspect it must be something like this:
but i didn't figure how to create the newTable for propTable to insert it in the existing one of what ever product == ids it finds.
Thank you very much, sorry if it's confusing. Not used to explain code related stuff in english.
macos - Mac - 虚拟串口
我需要创建一个 Cocoa 应用程序,它将创建一个可用于其他应用程序的虚拟串行端口,这意味着在 IO Kit Registry 中注册。
该应用程序的要点:
- 创建一个虚拟串口(在 /dev 中列出并在 IOKit Registry 中注册)
- 启动到另一台计算机的 tcp 连接
- 将虚拟串行端口上收到的所有内容代理到网络,反之亦然。
此应用程序将由与计算机上的串行端口通信的第三方应用程序使用,从而允许在网络上定位特定的串行设备。Cocoa 和网络部分没有问题,我已经编写了几个通过网络通信的应用程序。我的挂断是串口。
我已经使用 socat/netcat/minicom 进行了测试,以验证它是否可以通过网络代理 pty/tty 流量,但我使用的 tty 并没有显示为可供随机应用程序使用,因为它没有在 IO Kit 中注册注册表。
虽然我可以使用 pty/tty 主/从进行通信,但我需要这个从 tty 才能显示给 Mac 应用程序。非常方便的是在 IO Kit Registry 中注册 tty 的方法。
我真的需要创建一个在 Cocoa 应用程序运行时注册的自定义 IOKit kext 驱动程序吗?如果是这样,我前面有一个很大的学习曲线。我应该从哪里开始阅读?或者,我可以使用 IOKit 创建一个虚拟串行端口并将其注册为应用程序的可用串行端口,而无需加载任何内核扩展?
感谢您提供的任何帮助,
有状态的
objective-c - Mac 鼠标/触控板速度以编程方式
我正在尝试更改我正在处理的应用程序的鼠标跟踪速度(注意:不是加速)。我到处寻找一种方法来做到这一点,但找不到任何东西。我怀疑这与我在 IOKit/hidsystem 框架上的这个函数中给出的值有关:
作为 mouseAcceleration 值,我怀疑有一个定义加速度和速度的十六进制值。
有没有人遇到过这个问题并可以帮助我?
提前致谢