问题标签 [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 - 如何使用 vnode 删除文件?
我正在为 Mac os 编写内核扩展,我需要删除由 vnode_open() 创建的 tmp 文件,但我不知道如何删除文件并列出目录中的所有文件。
谢谢!
objective-c - 如何在 Mac OS X 中获取 USB 端口号?
IORegistryEntry
我在 IOKit 中发现了一个类。它具有获取属性值的 API。我正在尝试使用此类,但无法编译。
我添加了 IOKit 和内核框架。它抛出一个编译错误说:
IORegistryEntry 未声明。
如果有人知道如何编译,请告诉我。
macos - Mac IOKit USB 信号检测
在将 USB 设备添加到 Mac pc 时处理通知是可以的,但是当用户按下 USB 设备上的按钮时我可以收到信号吗?
谢谢大家!
usb - 从 IOKit (CoreFoundation) 接收插入设备的通知时出现问题
我目前正在 10.6.7 上开发一个应用程序,它应该在插入新的 USB 设备时接收通知。我发现有一个 IOKit 函数可以处理“IOServiceAddMatchingNotification”这样的东西。因为这个特定函数的返回值是 0,所以我认为问题可能出在我匹配的字典中,它被赋予了这个函数。我以这种方式声明字典:
因为我不想收到每个设备的通知,所以我不知道这是否是创建这个特定字典的正确方法。
我的完整代码如下所示:
有谁知道为什么这不起作用?(注意:Callback 函数是一个静态的 void c 函数,其余的都封装在 Obj-C 类中)。
谢谢
Xcode 4、10.6.7
cocoa - 如何在 OS X 中与 GPIO USB 设备通信?
我有一个来自 ViMicro 的 USB 网络摄像头,其中包含一个 GPIO 芯片。我们有一个微动开关连接到其中一个 IO 引脚,并且可以使用 ViMicro 提供的 ActiveX 控件读取 Windows 上的开关状态,名为exvmuvc.ax
. 我需要在 OS X 上使用 IOKit 复制此功能。
SysNucleus 的 USBTrace 显示 Windows 系统和 USB 设备之间发生的对话,但我无法在 Mac 上复制它。
有谁知道在 OS X 上工作的软件 USB 嗅探器,如 USBTrace,以便我可以比较数据包?此外,是否有人熟悉这种特殊的相机芯片及其 GPIO 子系统,即使在 Linux 上也是如此?
macos - 如何为 OS X 创建显示器?
我需要编写我认为是 OS X 的显示驱动程序。就像那些“把你的 iPad 用作第二个显示器!” 应用程序,但我需要编写 OS X 软件,该软件将向 OS X 注册另一个显示器,并给我像素数据,以便我可以使用它来满足我的各种需求。
我从哪里开始?我读过 IOKit,但我不太明白我需要做什么才能告诉 OS X 我是显示器,然后像素数据会是什么样子。
我必须通读的类/标题/等的一些链接也可以,但是如果有人这样做并且知道细节,那将非常有帮助。
此外,这是否必须是内核扩展,或者是否可以编写一个用户空间 IOKit 驱动程序,为 OS X 提供第二个监视器?
最后,需要明确的是,我只想要将发送到第二台显示器(镜像或扩展)的像素数据 - 我实际上并没有连接显示器或 I/O 设备。
iphone - 在我的 iOS 应用程序中使用 IOKit 会导致我的应用程序被拒绝吗?
正如Erica IOKit 所说,devs 是一个半私有框架;有人有在应用商店应用中使用它的经验吗?我想用它来获取 IMEI 和 ICCID 号码。
macos - OS X:为什么 __LP64__ 会导致纯虚函数?
我正在尝试更新一些大约 2003 年的I/O Kit代码,但我遇到了一些奇怪的事情:只有在__LP64__
设置了预处理器宏的情况下,才会在某些地方将方法声明为纯虚拟。例如,来自IOBlockStorageDevice:
在上面的例子中,为什么在 >=10.4 中强制执行 getWriteCacheStatus 而不是在 10.3 中?这只是“我们以前应该这样做”的情况,还是我没有看到更深层次的东西(通常是这种情况)。
macos - 我需要两台机器来开发 IOKit Mac 驱动程序吗?
我正在为 OS X 构建一个 IOKit CFPlugin 驱动程序。我将处理传入的网络数据,这些数据将被转换为 MIDI 数据。除了内置机场外,不涉及任何硬件。我对 Windows 机器和固件上的驱动程序有经验,但这是我第一次在 Mac 上做这件事。到目前为止,一切进展顺利,但 Apple 文档 sez:“出于安全原因,您不应该将驱动程序加载到您的开发机器上。”
我只有一台 Mac。我真的不想要两台 Mac——对不起,Apple。我应该认真对待这个警告吗?有什么我需要知道的吗?
谢谢,汤姆杰弗里斯
macos - 如何在进程启动时降低 IOKit 保留的内存量?
我是一名开发人员,正在开发一个非常大的内存密集型 32 位应用程序。用完虚拟地址空间(内存)对我们来说是个问题。在调查最近的一些问题时,我注意到 IOKit 保留了一大块内存(512MB)。此内存未分配,仅保留。进一步调查表明,大多数应用程序(Safari、iTunes 等)也都保留了这块内存。它似乎保持未分配状态。我正在使用 vmmap 进行测试。例如,这是一个使用 XCode 制作的 Cocoa 应用程序,使用默认模板:
我能做些什么来减少或消除那个内存池吗?我们的应用程序真的可以使用 512MB !!!
编辑:我做了更多的研究,似乎这块内存是被映射到用户空间的视频卡帧缓冲区。所以我想一个更准确的问题是,是否有办法限制帧缓冲区接管这么大一部分用户模式虚拟地址空间?
编辑:做了一些进一步的测试,发现需要更改的关键是 IOFBMemorySize。如图所示,如果您执行此命令:
或者您可以在 IORegistryExplorer 中看到它。不过,我未能成功更改该值。我尝试将它添加到 ATIFramebuffer.kext 的 Info.plist 中,不好。我尝试编写一个调用 IOConnectSetCFProperty 的程序,但它返回 kIOReturnUnsupported。
编辑:经过更多研究,似乎这个 IOFBMemorySize 键可能是只读的,只是报告视频卡上可用的内存量。CoreGraphics 的 Configuration.plist 中似乎有一些有趣的值,但它们似乎都不会影响内存分配(即使在重新启动后)。