| Sort by Title
 | Sort by Resource Type
 | Sorted by Date
 | 
| I/O Kit Framework Reference
(HTML) Describes the I/O Kit classes that support non-kernel access to I/O Kit objects through the device-interface mechanism. | Reference | 2009-03-04 | 
| Kernel Framework Reference
(HTML) Describes the APIs and classes (including I/O Kit families) that support kernel-resident device drivers. | Reference | 2009-01-06 | 
| Allocating and sharing memory with user space from an I/O Kit driver
(HTML)
(  ) QA1197: Describes the preferred technique for allocating and sharing buffers in an I/O Kit kernel driver. | Technical Q&As | 2008-10-13 | 
| Generating a Non-Maskable Interrupt (NMI)
(HTML)
(  ) QA1264: Explains how to generate a non-maskable interrupt (NMI) on modern Macintosh systems. | Technical Q&As | 2008-10-13 | 
| Retain Counts of io_object_t Objects in IOKit.framework
(HTML)
(  ) QA1195: Distinguishes between the retain counts of an I/O Kit kernel object and its io_object_t user space proxy. | Technical Q&As | 2008-09-24 | 
| IODeviceTree and the I/O Registry
(HTML)
(  ) QA1120: Describes the IODeviceTree plane in the Mac OS X I/O Registry. | Technical Q&As | 2008-09-18 | 
| SimpleUserClient
(HTML)
(DMG)
(ZIP) Shows how to create a user client for an I/O Kit kernel driver. | Sample Code | 2008-08-27 | 
| Building Universal I/O Kit Drivers
(HTML) TN2163: How to build a universal I/O Kit kernel driver while avoiding common pitfalls. | Technical Notes | 2008-08-18 | 
| Understanding and Debugging Kernel Panics
(HTML)
(  ) TN2063: Addresses kernel panics: what they are and how to debug the code that caused the panic. | Technical Notes | 2008-08-14 | 
| Disk Arbitration Framework Reference
(HTML) Describes Disc Arbitration API, which includes information on mount/unmount notification and dissent. | Reference | 2008-04-08 | 
| CustomMediaIcons
(HTML)
(DMG)
(ZIP) Providing custom media icons for storage | Sample Code | 2007-07-10 | 
| SMARTQuery
(HTML)
(DMG)
(ZIP) Demonstration of how to access and use S.M.A.R.T. disk monitoring functionality | Sample Code | 2007-05-30 | 
| Mass Storage Device Driver Programming Guide
(HTML)
(PDF) Background and task information about developing kernel-resident drivers for mass storage devices. | Guides | 2007-04-03 | 
| Multipathing with FibreChannel on Mac OS X
(HTML) TN2173: An explanation on how FibreChannel multipathing works on Mac OS X and how to design storage hardware to take advantage of it | Technical Notes | 2007-03-23 | 
| Device File Access Guide for Storage Devices
(HTML)
(PDF) Guidelines for using I/O Kit and POSIX functions to develop applications that communicate with storage devices. | Guides | 2007-03-06 | 
| SCSIHBAEmulator
(HTML)
(DMG)
(ZIP) Demonstration of how to implement a virtual parallel tasking SCSI host bus adapter (HBA) | Sample Code | 2007-02-20 | 
| SCSIOldAndNew
(HTML)
(DMG)
(ZIP) Demonstrates a backward-compatible technique for communicating with SCSI parallel devices on Mac OS X. | Sample Code | 2006-12-07 | 
| Secrets of the GPT
(HTML) TN2166: Describes the new partition map format used by Intel-based Macintosh computers. | Technical Notes | 2006-11-06 | 
| USBPrivateDataSample
(HTML)
(DMG)
(ZIP) Demonstrates notifications when a USB device is hotplugged and associating arbitrary data with each device. | Sample Code | 2006-10-16 | 
| VolumeToBSDNode
(HTML)
(DMG)
(ZIP) Shows how to iterate across all mounted volumes and retrieve their BSD node names. | Sample Code | 2006-10-16 | 
| VendorSpecificType00
(HTML)
(DMG)
(ZIP) Demonstrates how to access vendor-specific storage device functionality using a simple interface from user space code.  | Sample Code | 2006-10-02 | 
| The "packages" node in the device tree
(HTML) HW90: Describes the "packages" node in the Open Firmware device tree. | Technical Q&As | 2006-02-22 | 
| CDROMSample
(HTML)
(DMG)
(ZIP) Demonstrates how to find CD-ROM media and read sectors from that media on Mac OS X. | Sample Code | 2006-01-31 | 
| SampleFilterScheme
(HTML)
(DMG)
(ZIP) Demonstrates a simple filter scheme which passes all operations through to its provider unchanged.  | Sample Code | 2006-01-03 | 
| AudioCDSample
(HTML)
(DMG)
(ZIP) Demonstrates how to discover audio CDs and access the TOC information presented by the CD-DA filesystem. | Sample Code | 2005-10-04 | 
| Sending SCSI or ATA commands to storage devices
(HTML)
(  ) QA1179: Explains that Mac OS X does not implement SCSI or ATA pass-through for many mass storage devices. | Technical Q&As | 2005-05-10 | 
| Xserve G5 PCI Hardware RAID Card
(PDF) Explains how to install the card in an Xserve G5 and how to set up a RAID volume. | Guides | 2005-01-03 | 
| Xserve G5 Using the Hardware RAID PCI Card
(PDF) Explains how to use the software provided with the Hardware RAID PCI Card to configure and manage RAID operations. | Guides | 2005-01-03 | 
| Xserve RAID User's Guide
(PDF) Explains how to install the Xserve RAID system, connect it to a host system, and configure RAID storage. | Guides | 2005-01-03 | 
| Installing an I/O Kit KEXT Without Rebooting
(HTML) QA1319: Describes the state of the art of installing I/O Kit kernel extensions (KEXTs) without requiring a restart. | Technical Q&As | 2003-10-28 | 
| SDRAM Problems With Self-Powered USB Devices
(HTML)
(  ) HW82: Alerts that non-compliant, self-powered USB devices plugged into a G4, can cause problems with low-voltage-sensitive SDRAM . | Technical Q&As | 2003-08-21 | 
| CD-ROM Detection
(HTML)
(DMG)
(ZIP) Shows how to determine whether a drive is a CD-ROM drive.  | Sample Code | 2003-01-14 | 
| Power Management; Policy Maker vs. Power Controller
(HTML)
(  ) QA1121: Describes the differences between a Power Management Policy Maker and a Power Management Power Controller. | Technical Q&As | 2002-02-13 | 
| IOKit Framework Headers
(HTML)
(  ) QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework. | Technical Q&As | 2002-01-15 | 
| The dreaded "incompatible flag -framework" error
(HTML) QA1096: Explains how to eliminate the incompatible flag -framework error in Project Builder. | Technical Q&As | 2001-12-05 | 
| CD-ROM Driver Calls
(HTML) Deprecated - DV22: Discusses public interface to Apple CD-ROM driver and supersedes information in AppleCD SC Developer's Guide. | Technical Notes | 2000-08-14 | 
| Legacy Devices
(HTML) HW84: Discusses why legacy devices with hard-wired I/O addresses may not work properly with Open Firmware. | Technical Q&As | 2000-03-20 | 
| A SCSI little secret
(HTML) HW81: Details what to expect when accessing the motherboard SCSI bus on the Blue & White G3. | Technical Q&As | 1999-12-20 | 
| Which Machines Support Driver Services Library and the MP Nanokernel?
(HTML)
(  ) HW63: Lists the systems that do and don't support the Driver Services Library and the MP Nanokernel. | Technical Q&As | 1999-07-12 | 
| Booting after invoking the Open Firmware user interface
(HTML)
(  ) HW48: Tells how to boot a system after entering the Open Firmware user interface. | Technical Q&As | 1999-02-15 | 
| What are configuration variables in Open Firmware?
(HTML)
(  ) HW38: Defines the configuration variables in Open Firmware. | Technical Q&As | 1999-02-15 | 
| What are snag keys in Open Firmware?
(HTML)
(  ) HW35: Explains Open Firmware snag keys, including examples of their function. | Technical Q&As | 1999-02-15 | 
| Detecting a CD-ROM
(HTML)
(  ) DV18: Demonstrates CD-ROM drive detection. | Technical Q&As | 1997-01-31 | 
| Getting a List of Drivers & LUNs (logical unit numbers)
(HTML) Deprecated - DV04: Describes a legacy Mac OS technique for obtaining a list of SCSI Parallel drivers, devices, and LUNs. | Technical Q&As | 1995-07-01 | 
| Boot Blocks
(HTML) Deprecated - DV03: Warns that Boot Block form and function will change and describes undocumented Boot Blocks features. | Technical Notes | 1987-03-01 |