Hardware-Access Options

Many applications can handle all their hardware-access needs using high-level APIs, such as QuickTime, CFNetwork, and Core Audio. Before you embark upon the development of an application-based device driver, you should read this chapter to determine if there is a more suitable (and probably easier) solution.

If you find that you must use I/O Kit or BSD APIs to access a device, note that Apple does not provide Objective-C interfaces for these APIs. However, because these are pure C APIs, you can call them from your Cocoa application.

Other APIs That Provide Access to Hardware

The high-level OS X APIs listed here provide some access to hardware and do not require the use of I/O Kit services. This list is not exhaustive. A pointer to documentation for these APIs is provided, where available; otherwise, look for the for the latest documentation in the Reference Library.

Where to Go From Here

If you’ve determined that the hardware access options listed in “Other APIs That Provide Access to Hardware” do not meet your application’s needs, you can use the device interface mechanism that many I/O Kit device families provide to access your device.

If you’re unfamiliar with the device interface mechanism, be sure to read the next chapter, “Device Access and the I/O Kit,” for more information. If you’re wondering if an I/O Kit family provides a device interface for your device, see “I/O Kit Family Device-Access Support.”