问题标签 [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.

0 投票
4 回答
3148 浏览

macos - OS X 上的游戏手柄代码:嗯?

在我尝试为 OS X 编写游戏手柄代码之前,我认为我是一个不错的程序员。现在我觉得自己很没用。

有谁知道我可以在我的(非免费)游戏中合法使用的任何代码?

在 OS X 上与游戏手柄对话真的有这么难吗?我错过了什么?

0 投票
4 回答
1325 浏览

macos - 在 osx 上检测卷的出现/消失

我想在用户插入 USB 密钥、添加外部磁盘和挂载磁盘映像时更新存储设备列表。IOKit 的 IOServiceAddInterestNotification 看起来像是要走的路,但是在 kIOMediaClass 中注册一般兴趣的明显用途只会给你通知卸载卷,然后只是有时。

这样做的正确方法是什么?

0 投票
3 回答
1920 浏览

macos - 区分 HFS+ 和 HFS 标准卷

IOKit 和 DiskArbitration 框架可以告诉我很多关于 Mac 上挂载卷的信息,但它们似乎无法区分 HFS+ 和 HFS 标准卷。

IOKit/DA 键Content,对于 HFS 标准卷和 HFS+ 卷,始终是 Apple_HFS 和 hfs DAVolumeKindDAMediaContent

diskutil 和 DiskUtility.app可以区分,但我似乎没有被 Apple 开源。

ps statfs(2) 不区分

0 投票
1 回答
565 浏览

macos - 访问 I/O 目录类对象

我正在开发一个将用作 I/O Kit 驱动程序的 OS X 内核扩展 (kext)。然而,这个驱动程序将是严格的“虚拟”;它不会与任何硬件接口。

OS X 保留了所有加载到内核中的驱动程序的目录(I/O 目录)。它还保留一个注册表(I/O 注册表),其中包含与硬件设备匹配且当前控制硬件的 I/O 目录驱动程序。

由于我的驱动程序不依赖于硬件并且不“匹配”,因此它只加载到 I/O 目录中,而不是在 I/O 注册表中注册。这会导致一个问题,因为获取 I/O 驱动程序对象的 API 仅限于在 I/O 注册表中注册的驱动程序,并且不会访问 I/O 目录中的对象。我尝试使用推荐的 API 匹配我的驱动程序,但是,正如我之前提到的,这些 API 不会公开 I/O 目录条目。

我的最终目标是获得对我的驱动程序的引用,以便使用“setProperties”方法传输数据。如果一切都失败了,我可以使用 syscall、copyin 和 copyout 的组合来将数据传入和传出驱动程序,但我目前对该解决方案不感兴趣。

简而言之:有没有办法获得对 I/O 目录中但不在I/O 注册表中的驱动程序的引用?

更新:要了解我的意思,请查看以下 IORegistryExplorer 的两个屏幕截图:

注册的驱动程序可以通过 API轻松访问,但未注册的驱动程序将无法使用 IOServiceGetMatchingServices(...) 进行匹配。如何获取对未注册的已加载驱动程序的引用?

欲了解更多信息,请查看:

0 投票
5 回答
2126 浏览

cocoa - 如何在 Mac OS X 中获取存储设备的图标?

我发现我的设备正在使用IOServiceGetMatchingServices并得到这样的属性字典:

从该字典中,我可以提取图标的信息:

那两个给了我这个(例如):

我尝试使用此方法提取图标:

但是bundleWithIconnil

这甚至是获取图标的正确方法吗?

我想我必须以某种方式加载捆绑包才能加载它bundleWithIdentifier,我该怎么做?

PS:还有另一个问题(我认为)试图问同样的事情,但只要求捆绑,而不是如果这是正确的方法。

0 投票
1 回答
480 浏览

debugging - 如何将 OSDictionary 转储(打印)到控制台/日志?

我想从我的 kext 检查 OSDictionary 的内容。有没有方便的方法将内容打印到 system.log 或类似文件?(阿拉CFShow())?

thx->adv,

|K<

0 投票
3 回答
23879 浏览

macos - 什么是 com.apple.Dont_Steal_Mac_OS_X

com.apple.Dont_Steal_Mac_OS_X 是一个 IOResources 提供者...

类继承:Dont_Steal_Mac_OS_X:IOService:IORegistryEntry:OSObject

它是如何工作的?

它有什么作用?

0 投票
2 回答
568 浏览

macos - FireLog:正确安装

我已经在我的开发 Mac 上安装了 firewiresdk26 ......并且在 Tools/ 目录中是 FireLog。我在我的 dev mac 上运行了 FireLog 2.0.0.pkg 安装程序,但它部署的有效负载安装在我的 /System/Library 树中,而不是我的 /Developer/SDKs 树中。因此,当我尝试包含标头 iokit/firewire/FireLog.h 时,找不到它。

我错过了什么吗?或做错了什么?

或者这是安装程序中的错误(FW26 还是 FireLog 安装程序?)我意识到 FireLog 安装程序旨在在机器上运行以进行远程调试,因此将框架放置在 /System/Library 中是有意义的路径,但是没有安装程序将它放入我的开发者路径中......我想我只需要手动将它移到那里,但在我这样做之前,我想看看我是否只是忽略了一些愚蠢的东西并且需要阅读更专注的文档或其他东西......

有人遇到过这个吗?[谢谢]

0 投票
1 回答
1439 浏览

macos - 通过软件在 OSX 上模拟 USB 插入

如何将 USB 设备节点注入 OSX (>= 10.5),例如您可以调试 USB 处理程序/编写新的 USB 驱动程序?

我对此感兴趣,以便使用 TokenD 处理非 USB 设备。

从它的样子来看,我必须解决伪造的 USB 设备插入问题,然后创建一个 PC/SC ifdHandler 来处理这个伪造的设备。(如果有人知道注入非必要设备支持的 TokenD 的任何其他方式,请告诉我!)。

我猜 IOKit 可能参与了这个解决方案......因为这是我需要“欺骗”的基础项目。

0 投票
2 回答
3195 浏览

cocoa - libusb 是 Mac OS X 上访问 USB 设备的首选方法吗?

如今,libusb 是在 OS X 上通过 USB(使用 AT 命令)与设备通信的首选方法吗?

可可中是否有任何高水平的等价物?