TechnologiesLow-level, Kernel & Legacy

IOKit

iOSmacOStvOSwatchOSvisionOS

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.

  • St
    IOPhysicalRange
    A structure that describes a contiguous range of physical memory by address and length.
  • St
    IOVirtualRange
    A 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.

  • St
    IORPC
    A structure that encapsulates a driver remote-procedure-call request and its response messages.
  • St
    IORPCMessage
    A structure that describes a driver remote-procedure-call message and its arguments.
  • St
    IORPCMessageMach
    A structure that wraps an IOKit remote-procedure-call message for transport over Mach IPC.
  • St
    IORPCMessageErrorReturn
    A structure that represents an error reply returned from a driver remote-procedure call.
  • St
    IORPCMessageErrorReturnContent
    A 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.

  • St
    OSNotificationHeader
    A structure that heads a service notification message delivered to a client.
  • St
    OSNotificationHeader64
    A 64-bit structure that heads a service notification message delivered to a client.
  • St
    IOServiceInterestContent
    A structure carrying the payload of a service-interest notification.
  • St
    IOServiceInterestContent64
    A 64-bit structure carrying the payload of a service-interest notification.
  • St
    IOAsyncCompletionContent
    A 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.

  • St
    IOCFPlugInInterfaceStruct
    A structure defining the function table for a Core Foundation device interface plug-in.
  • St
    OSClassDescription
    A structure that describes runtime metadata for an OSObject-derived class.
  • St
    IONamedValue
    A 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.

  • St
    IOURLError
    A structure that reports a URL-related error encountered during an I/O operation.

Type Aliases 43

  • Ty
    IOReturn
  • Ty
    IOOptionBits
  • Ty
    IOFixed
  • Ty
    IOVersion
  • Ty
    IOItemCount
  • Ty
    IOCacheMode
  • Ty
    IOByteCount32
  • Ty
    IOByteCount64
  • Ty
    IOPhysicalAddress32
  • Ty
    IOPhysicalAddress64
  • Ty
    IOPhysicalLength32
  • Ty
    IOPhysicalLength64
  • Ty
    IOVirtualAddress
  • Ty
    IOByteCount
  • Ty
    IOLogicalAddress
  • Ty
    IOPhysicalAddress
Show 27 more
  • Ty
    IOPhysicalLength
  • Ty
    IOAddressRange
  • Ty
    IOAlignment
  • Ty
    io_object_t
  • Ty
    io_connect_t
  • Ty
    io_enumerator_t
  • Ty
    io_ident_t
  • Ty
    io_iterator_t
  • Ty
    io_registry_entry_t
  • Ty
    io_service_t
  • Ty
    uext_object_t
  • Ty
    IODeviceNumber
  • Ty
    OSAsyncReference64
  • Ty
    OSAsyncReference
  • Ty
    IONotificationPortRef
    @header IOKitLib
  • Ty
    IOServiceMatchingCallback
    @typedef IOServiceMatchingCallback
  • Ty
    IOServiceInterestCallback
    @typedef IOServiceInterestCallback
  • Ty
    IOAsyncCallback0
    @typedef IOAsyncCallback0
  • Ty
    IOAsyncCallback1
    @typedef IOAsyncCallback1
  • Ty
    IOAsyncCallback2
    @typedef IOAsyncCallback2
  • Ty
    IOAsyncCallback
    @typedef IOAsyncCallback
  • Ty
    IODataQueueEntry
    @typedef IODataQueueEntry
  • Ty
    IODataQueueMemory
    @typedef IODataQueueMemory
  • Ty
    IODataQueueAppendix
    @typedef IODataQueueAppendix
  • Ty
    IOCFPlugInInterface
  • Ty
    IOMessage
    @header IOMessage.h
  • Ty
    OSObjectRef
← Low-level, Kernel & Legacy