IOKit is a low-level framework for device driver development and hardware access on macOS, spanning I/O families such as HID, graphics, storage, and USB. With it you describe and exchange data with hardware using structures like IOPhysicalRange and IOVirtualRange for memory ranges, the _IODataQueueEntry and _IODataQueueMemory types that back shared data queues, and IORPC message structures such as IORPCMessage and IORPCMessageMach for driver remote-procedure calls. You also handle service notifications and asynchronous completions through types like OSNotificationHeader, IOServiceInterestContent, and IOAsyncCompletionContent.
Memory Ranges 2
Structures that describe physical and virtual memory regions used in I/O transfers.
- StIOPhysicalRangeA structure that describes a contiguous range of physical memory by address and length.
- StIOVirtualRangeA structure that describes a contiguous range of virtual memory by address and length.
Shared Data Queues 3
Structures that back the lock-free shared memory queues used to pass entries between drivers and clients.
- St_IODataQueueEntry@typedef IODataQueueEntry
- St_IODataQueueMemory@typedef IODataQueueMemory
- St_IODataQueueAppendix@typedef IODataQueueAppendix
Remote Procedure Calls 5
Message structures that carry driver remote-procedure-call requests, replies, and error returns.
- StIORPCA structure that encapsulates a driver remote-procedure-call request and its response messages.
- StIORPCMessageA structure that describes a driver remote-procedure-call message and its arguments.
- StIORPCMessageMachA structure that wraps an IOKit remote-procedure-call message for transport over Mach IPC.
- StIORPCMessageErrorReturnA structure that represents an error reply returned from a driver remote-procedure call.
- StIORPCMessageErrorReturnContentA structure carrying the payload of an error returned from a remote-procedure call.
Service Notifications & Completions 5
Structures that deliver service-interest notifications and asynchronous I/O completion data.
- StOSNotificationHeaderA structure that heads a service notification message delivered to a client.
- StOSNotificationHeader64A 64-bit structure that heads a service notification message delivered to a client.
- StIOServiceInterestContentA structure carrying the payload of a service-interest notification.
- StIOServiceInterestContent64A 64-bit structure carrying the payload of a service-interest notification.
- StIOAsyncCompletionContentA structure carrying the result data delivered when an asynchronous I/O operation completes.
Plug-ins & Class Metadata 3
Structures that describe device interface plug-ins and runtime class information.
- StIOCFPlugInInterfaceStructA structure defining the function table for a Core Foundation device interface plug-in.
- StOSClassDescriptionA structure that describes runtime metadata for an OSObject-derived class.
- StIONamedValueA structure that pairs an integer value with a human-readable name for lookups and descriptions.
Errors 1
Structures that report I/O and URL-related error conditions.
- StIOURLErrorA structure that reports a URL-related error encountered during an I/O operation.
Type Aliases 43
- TyIOReturn
- TyIOOptionBits
- TyIOFixed
- TyIOVersion
- TyIOItemCount
- TyIOCacheMode
- TyIOByteCount32
- TyIOByteCount64
- TyIOPhysicalAddress32
- TyIOPhysicalAddress64
- TyIOPhysicalLength32
- TyIOPhysicalLength64
- TyIOVirtualAddress
- TyIOByteCount
- TyIOLogicalAddress
- TyIOPhysicalAddress
Show 27 more
- TyIOPhysicalLength
- TyIOAddressRange
- TyIOAlignment
- Tyio_object_t
- Tyio_connect_t
- Tyio_enumerator_t
- Tyio_ident_t
- Tyio_iterator_t
- Tyio_registry_entry_t
- Tyio_service_t
- Tyuext_object_t
- TyIODeviceNumber
- TyOSAsyncReference64
- TyOSAsyncReference
- TyIONotificationPortRef@header IOKitLib
- TyIOServiceMatchingCallback@typedef IOServiceMatchingCallback
- TyIOServiceInterestCallback@typedef IOServiceInterestCallback
- TyIOAsyncCallback0@typedef IOAsyncCallback0
- TyIOAsyncCallback1@typedef IOAsyncCallback1
- TyIOAsyncCallback2@typedef IOAsyncCallback2
- TyIOAsyncCallback@typedef IOAsyncCallback
- TyIODataQueueEntry@typedef IODataQueueEntry
- TyIODataQueueMemory@typedef IODataQueueMemory
- TyIODataQueueAppendix@typedef IODataQueueAppendix
- TyIOCFPlugInInterface
- TyIOMessage@header IOMessage.h
- TyOSObjectRef