This appendix describes each of the I/O Kit families in detail, paying particular attention to client/provider relationships. For most families, it provides a class hierarchy chart. It also tells you if a family exports a device interface, thereby allowing applications to access devices represented by the family. You should seriously consider taking the device-interface approach before attempting to write a kernel-resident driver. For information on using device interfaces, see the document Accessing Hardware From Applications.
Some categories of devices are not currently supported by an I/O Kit family. If your device falls into an unsupported category, you might be able to write a “family-less” driver, use an SDK other than the I/O Kit, or create a new family. See “Devices Without I/O Kit Families” for details.
You may find it helpful to examine the source code for an I/O Kit family or a specific device driver. To do this, visit Darwin Releases, select the appropriate version of Mac OS X, and click Source to view the available source projects.
ADB
ATA and ATAPI
Audio
FireWire
Graphics
HID
Network
PC Card
PCI and AGP
SBP-2
SCSI Parallel
SCSI Architecture Model
Serial
Storage
USB
Devices Without I/O Kit Families
Last updated: 2007-05-17