<!--
{
  "documentType" : "article",
  "framework" : "DriverKit",
  "identifier" : "/documentation/DriverKit/driverkit-data-types",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "DriverKit Data Types"
}
-->

# DriverKit Data Types

## Topics

### Data Types

[`typedef void (^)(void) IOCallOnceBlock;`](/documentation/DriverKit/IOCallOnceBlock)

[`struct IOCallOnceFlag;`](/documentation/DriverKit/IOCallOnceFlag)

[`class IOCommand;`](/documentation/DriverKit/IOCommand)

[`class IOCommandPool;`](/documentation/DriverKit/IOCommandPool)

[`typedef IOCommandPool * IOCommandPoolPtr;`](/documentation/DriverKit/IOCommandPoolPtr)

[`typedef IOCommand * IOCommandPtr;`](/documentation/DriverKit/IOCommandPtr)

[`class IODMACommand;`](/documentation/DriverKit/IODMACommand)

An object that converts memory references to I/O bus addresses.

[`struct IODMACommandSpecification;`](/documentation/DriverKit/IODMACommandSpecification)

[`typedef int (^)(void) IODispatchAction;`](/documentation/DriverKit/IODispatchAction)

[`struct IOHistogramReporter_IVars;`](/documentation/DriverKit/IOHistogramReporter_IVars)

[`typedef OSDictionary IOReportLegendEntry;`](/documentation/DriverKit/IOReportLegendEntry)

[`struct IOReporter_IVars;`](/documentation/DriverKit/IOReporter_IVars)

[`struct IOSimpleReporter_IVars;`](/documentation/DriverKit/IOSimpleReporter_IVars)

[`struct IOStateReporter_IVars;`](/documentation/DriverKit/IOStateReporter_IVars)

[`enum IOStateReporter_valueSelector : unsigned int;`](/documentation/DriverKit/IOStateReporter_valueSelector)

[`struct IVarsInvalidator;`](/documentation/DriverKit/IVarsInvalidator)

[`typedef int (^)(const class OSMetaClassBase *, const class OSMetaClassBase *) OSOrderBlock;`](/documentation/DriverKit/OSOrderBlock)

[`struct OS_no_retain_t;`](/documentation/DriverKit/OS_no_retain_t)

[`struct OS_retain_t;`](/documentation/DriverKit/OS_retain_t)

[`typedef uint64_t UInt64;`](/documentation/DriverKit/UInt64)

[`typedef uint8_t UInt8;`](/documentation/DriverKit/UInt8)

[`typedef unsigned long long malloc_type_id_t;`](/documentation/DriverKit/malloc_type_id_t)

[`typedef int (^)(void) IODispatchAction;`](/documentation/DriverKit/IODispatchAction)

[`typedef uint16_t IOReportCategories;`](/documentation/DriverKit/IOReportCategories)

[`typedef uint32_t IOReportConfigureAction;`](/documentation/DriverKit/IOReportConfigureAction)

[`typedef uint8_t IOReportFormat;`](/documentation/DriverKit/IOReportFormat)

[`typedef uint8_t IOReportQuantity;`](/documentation/DriverKit/IOReportQuantity)

[`typedef uint64_t IOReportScaleFactor;`](/documentation/DriverKit/IOReportScaleFactor)

[`typedef uint64_t IOReportUnit;`](/documentation/DriverKit/IOReportUnit)

[`typedef uint64_t IOReportUnits;`](/documentation/DriverKit/IOReportUnits)

[`typedef uint32_t IOReportUpdateAction;`](/documentation/DriverKit/IOReportUpdateAction)

[`typedef void (^)(unsigned long long, class IOService *, unsigned long long) IOServiceNotificationBlock;`](/documentation/DriverKit/IOServiceNotificationBlock)

[`class IOServiceNotificationDispatchSource;`](/documentation/DriverKit/IOServiceNotificationDispatchSource)

[`typedef libkern::libkern::safe_allocation<T, Allocator, os_detail::panic_trapping_policy> OSAllocation;`](/documentation/DriverKit/OSAllocation)

[`typedef libkern::libkern::bounded_array<T, N, os_detail::panic_trapping_policy> OSBoundedArray;`](/documentation/DriverKit/OSBoundedArray)

[`typedef libkern::libkern::bounded_array_ref<T, os_detail::panic_trapping_policy> OSBoundedArrayRef;`](/documentation/DriverKit/OSBoundedArrayRef)

[`typedef libkern::libkern::bounded_ptr<T, os_detail::panic_trapping_policy> OSBoundedPtr;`](/documentation/DriverKit/OSBoundedPtr)

[`class OSInterface;`](/documentation/DriverKit/OSInterface)

[`typedef OSOrderedSet * OSOrderedSetPtr;`](/documentation/DriverKit/OSOrderedSetPtr)

[`class OSOrderedSet;`](/documentation/DriverKit/OSOrderedSet)

OSOrderedSet provides an ordered set store of objects.

[`typedef type-parameter-0-0 * OSPtr;`](/documentation/DriverKit/OSPtr)

[`class OSSet;`](/documentation/DriverKit/OSSet)

OSSet provides an unordered set store of objects.

[`typedef OSSet * OSSetPtr;`](/documentation/DriverKit/OSSetPtr)

[`typedef struct SCSICmd_INQUIRY_PageCx_Header SCSICmd_INQUIRY_PAGECx_Header;`](/documentation/DriverKit/SCSICmd_INQUIRY_PAGECx_Header-c.typealias)

[`typedef SCSICmd_INQUIRY_StandardData * SCSICmd_INQUIRY_StandardDataPtr;`](/documentation/DriverKit/SCSICmd_INQUIRY_StandardDataPtr)

[`typedef UInt8[16] SCSICommandDescriptorBlock;`](/documentation/DriverKit/SCSICommandDescriptorBlock)

[`typedef UInt64 SCSIDeviceIdentifier;`](/documentation/DriverKit/SCSIDeviceIdentifier)

64-bit number to represent a SCSI Device.

[`typedef SCSIDeviceIdentifier SCSIInitiatorIdentifier;`](/documentation/DriverKit/SCSIInitiatorIdentifier)

64-bit number to represent a SCSI Initiator Device.

[`typedef UInt8[8] SCSILogicalUnitBytes;`](/documentation/DriverKit/SCSILogicalUnitBytes)

[`typedef UInt64 SCSILogicalUnitNumber;`](/documentation/DriverKit/SCSILogicalUnitNumber)

[`typedef UInt64 SCSITaggedTaskIdentifier;`](/documentation/DriverKit/SCSITaggedTaskIdentifier)

64-bit number to represent a unique task identifier.

[`typedef SCSIDeviceIdentifier SCSITargetIdentifier;`](/documentation/DriverKit/SCSITargetIdentifier)

64-bit number to represent a SCSI Target Device.

[`typedef uint16_t UInt16;`](/documentation/DriverKit/UInt16)

[`typedef uint32_t UInt32;`](/documentation/DriverKit/UInt32)

[`typedef struct queue_entry queue_chain_t;`](/documentation/DriverKit/queue_chain_t)

[`typedef struct queue_entry * queue_entry_t;`](/documentation/DriverKit/queue_entry_t)

[`typedef struct queue_entry * queue_t;`](/documentation/DriverKit/queue_t)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)