Framework

IOKit

Gain user-space access to hardware devices and drivers.

Overview

The I/O Kit framework implements non-kernel access to I/O Kit objects (drivers and nubs) through the device-interface mechanism.

Topics

COM Interfaces

IOATASMARTInterface

Self-Monitoring, Analysis, and Reporting Technology Interface.

IOFireWireAVCLibConsumerInterface

Interface for an asynchronous connection consumer.

IOFireWireAVCLibProtocolInterface

Initial interface discovered for all AVC protocol drivers.

IOFireWireAVCLibUnitInterface

Initial interface discovered for all AVC Unit drivers.

IOFireWireCommandInterface

IOFireWireLib command object.

IOFireWireConfigDirectoryInterface

IOFireWireLib device config ROM browsing interface

IOFireWireDeviceInterface

IOFireWireDeviceInterface is your primary gateway to the functionality contained in IOFireWireLib.

IOFireWireIsochChannelInterface

FireWire user client isochronous channel object.

IOFireWireIsochPortInterface

FireWire user client isochronous port interface

IOFireWireLibPHYPacketListenerInterface

Represents and provides management functions for a phy packet listener object.

IOFireWireLibVectorCommandInterface

IOFireWireLib command object for grouping commands execution.

IOFireWireLocalIsochPortInterface

FireWire user client local isochronous port object.

IOFireWireNubInterface

IOFireWireDeviceInterface is your primary gateway to the functionality contained in IOFireWireLib.

IOFireWireNuDCLPoolInterface

Use this interface to build NuDCL-based DCL programs.

IOFireWirePhysicalAddressSpaceInterface

IOFireWireLib physical address space object. ( interface name: IOFireWirePhysicalAddressSpaceInterface )

IOFireWireReadCommandInterface

IOFireWireLib block read command object.

IOFireWireReadQuadletCommandInterface

IOFireWireReadQuadletCommandInterface -- IOFireWireLib quadlet read command object.

IOFireWireSBP2LibLoginInterface

Supplies the login maintenance and Normal Command ORB execution portions of the API.

IOFireWireSBP2LibLUNInterface

Initial interface disovered for all drivers.

IOFireWireSBP2LibMgmtORBInterface

Supplies non login related management ORBs. Management ORBs can be executed independent of a login, if necessary. Management ORBs are created using the IOFireWireSBP2LibLUNInterface.

IOFireWireSBP2LibORBInterface

Represents an SBP2 normal command ORB. Supplies the APIs for configuring normal command ORBs. This includes setting the command block and writing the page tables for I/O. The ORBs are executed using the submitORB method in IOFireWireSBP2LibLoginInterface.

IOFireWireUnitInterface

IOFireWireDeviceInterface is your primary gateway to the functionality contained in IOFireWireLib.

IOFireWireWriteCommandInterface

IOFireWireLib block read command object.

IOFireWireWriteQuadletCommandInterface

IOFireWireLib quadlet read command object.

IOFWAsyncStreamListenerInterface

Represents and provides management functions for a asyn stream listener object.

IOHIDDeviceDeviceInterface

The object you use to access HID devices from user space, returned by version 1.5 of the IOHIDFamily.

IOHIDDeviceInterface

CFPlugin object subclass which provides the primary interface to HID devices.

IOHIDDeviceInterface121

CFPlugin object subclass which provides the primary interface to HID devices. This class is a subclass of IOHIDDeviceInterface.

IOHIDDeviceInterface122

CFPlugin object subclass which provides the primary interface to HID devices. This class is a subclass of IOHIDDeviceInterface121.

IOHIDDeviceQueueInterface

The object you use to access a HID queue from user space, returned by version 1.5 of the IOHIDFamily.

IOHIDDeviceTransactionInterface

The object you use to access a HID transaction from user space, returned by version 1.5 of the IOHIDFamily.

IOHIDOutputTransactionInterface

CFPlugin object subclass which privides interface for output transactions to HID devices. Created by a IOHIDDeviceInterface object.

IOHIDQueueInterface

CFPlugin object subclass which provides an interface for input queues from HID devices. Created by an IOHIDDeviceInterface object.

IOUPSPlugInInterface

Represents and provides management functions for a UPS device.

IOUSBDeviceInterface

The object you use to access USB devices from user space, returned by all versions of the IOUSBFamily currently shipping.

IOUSBDeviceInterface182

The object you use to access USB devices from user space, returned by the IOUSBFamily version 1.8.2 and above.

IOUSBDeviceInterface187

The object you use to access USB devices from user space, returned by the IOUSBFamily version 10.8.7 and above.

IOUSBDeviceInterface197

The object you use to access USB devices from user space, returned by the IOUSBFamily version 1.9.7 and above.

IOUSBDeviceInterface245

The object you use to access USB devices from user space, returned by the IOUSBFamily version 2.4.5 and above.

IOUSBDeviceInterface300

The object you use to access USB devices from user space, returned by the IOUSBFamily version 3.0.0 and above.

IOUSBDeviceInterface320

The object you use to access USB devices from user space, returned by the IOUSBFamily version 3.2.0 and above.

IOUSBDeviceInterface500

The object you use to access USB devices from user space, returned by the IOUSBFamily version 3.2.0 and above.

IOUSBInterfaceInterface

The object you use to access a USB device interface from user space, returned by all versions of the IOUSBFamily currently shipping.

IOUSBInterfaceInterface182

The object you use to access a USB device interface from user space, returned by the IOUSBFamily version 1.8.2 and above.

IOUSBInterfaceInterface183

The object you use to access a USB device interface from user space, returned by the IOUSBFamily version 1.8.3 and above.

IOUSBInterfaceInterface190

The object you use to access a USB device interface from user space, returned by the IOUSBFamily version 1.9 and above.

IOUSBInterfaceInterface192

The object you use to access a USB device interface from user space, returned by the IOUSBFamily version 1.9.2 and above.

IOUSBInterfaceInterface197

The object you use to access a USB device interface from user space, returned by the IOUSBFamily version 1.9.7 and above.

MMCDeviceInterface

Basic interface for an MMC-2 Compliant Device.

SCSITaskDeviceInterface

Basic interface for a SCSITask Device.

SCSITaskInterface

Basic interface for a SCSITask.

Reference

ATASMARTLib.h

ATASMARTLib implements non-kernel task access to ATA SMART data.

IOAudioLib.h

C interface to IOAudio functions

IOBDBlockStorageDevice.h User-Space

This header contains the IOBDBlockStorageDevice class definition.

IOBDMedia.h User-Space

This header contains the IOBDMedia class definition.

IOBlockStorageDevice.h User-Space

This header contains the IOBlockStorageDevice class definition.

IOBlockStorageDriver.h User-Space

This header contains the IOBlockStorageDriver class definition.

IOCDBlockStorageDevice.h User-Space

This header contains the IOCDBlockStorageDevice class definition.

IOCDMedia.h User-Space

This header contains the IOCDMedia class definition.

IODVDBlockStorageDevice.h User-Space

This header contains the IODVDBlockStorageDevice class definition.

IODVDMedia.h User-Space

This header contains the IODVDMedia class definition.

IOFilterScheme.h User-Space

This header contains the IOFilterScheme class definition.

IOFireWireFamilyCommon.h User-Space

This file contains useful definitions for working with FireWire in the kernel and in user space

IOMedia.h User-Space

This header contains the IOMedia class definition.

IOMessage.h User-Space

Defines message type constants for several IOKit messaging API's.

IOPM.h User-Space

Defines power management constants and keys used by both in-kernel and user space power management.

IOPMKeys.h

IOPMKeys.h defines C strings for use accessing power management data. Note that all of these C strings must be converted to CFStrings before use. You can wrap them with the CFSTR() macro, or create a CFStringRef (that you must later CFRelease()) using CFStringCreateWithCString()

IOPMLib.h

IOPMLib provides access to common power management facilities, like initiating system sleep, getting current idle timer values, registering for sleep/wake notifications, and preventing system sleep.

IOPSKeys.h

IOPSKeys.h defines C strings for use accessing power source data in IOPowerSource CFDictionaries, as returned by IOPSGetPowerSourceDescription Note that all of these C strings must be converted to CFStrings before use. You can wrap them with the CFSTR() macro, or create a CFStringRef (that you must later CFRelease()) using CFStringCreateWithCString().

IOPartitionScheme.h User-Space

This header contains the IOPartitionScheme class definition.

IOStorage.h User-Space

This header contains the IOStorage class definition.

IOStreamLib.h

IOCFPlugin library for using IOStream objects.

IOStreamShared.h User-Space

IOStream definitions shared between kernel and user space.

IOVideoDeviceShared.h User-Space

IOVideoDevice definitions shared between kernel and user space.

KextManager.h

The KextManager API provides a simple interface for applications to load kernel extensions (kexts) via RPC to kextd, and to look up the URLs for kexts by bundle identifier.

SCSICmds_INQUIRY_Definitions.h User-Space

This file contains all definitions for the data returned from the INQUIRY (0x12) command.

SCSICmds_MODE_Definitions.h User-Space

This file contains all definitions for the data returned from the MODE_SENSE_6 and MODE_SENSE_10 commands.

SCSICmds_READ_CAPACITY_Definitions.h User-Space

This file contains all definitions for the data returned from the READ CAPACITY 10 (0x25) and READ CAPACITY 16 (0x9E) commands.

SCSICmds_REPORT_LUNS_Definitions.h User-Space

This file contains all definitions for the data returned from the REPORT_LUNS (0xA0) command.

SCSICmds_REQUEST_SENSE_Defs.h User-Space

This file contains all definitions for the data returned from the REQUEST SENSE (0x03) command and from auto sense on protocols that support it.

SCSITaskLib.h

SCSITaskLib implements non-kernel task access to specific IOKit object types, namely any SCSI Peripheral Device for which there isn't an in-kernel driver and for authoring devices such as CD-R/W and DVD-R/W drives.

Classes

OSArray

OSArray provides an indexed store of objects.

OSDictionary

OSDictionary provides an associative store using strings for keys.

OSString

OSString wraps a C string in a C++ object for use in Libkern collections.

See Also