<!--
{
  "availability" : [
    "iOS: 11.0 -",
    "iPadOS: 11.0 -",
    "macCatalyst: 13.0 -",
    "macOS: 10.6 -",
    "tvOS: 11.0 -",
    "visionOS: 1.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "IOSurface",
  "identifier" : "/documentation/IOSurface",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "IOSurface"
    ],
    "preciseIdentifier" : "IOSurface"
  },
  "title" : "IOSurface"
}
-->

# IOSurface

Share hardware-accelerated buffer data (framebuffers and textures) across multiple processes. Manage image memory more efficiently.

## Overview

The IOSurface framework provides a framebuffer object suitable for sharing across process boundaries. It is commonly used to allow applications to move complex image decompression and draw logic into a separate process to enhance security.

## Topics

### Classes

[`IOSurface`](/documentation/IOSurface/IOSurface)

Data type representing an IOSurface opaque object.

[`IOSurfaceRef`](/documentation/IOSurface/IOSurfaceRef)

Data type representing an IOSurface opaque object.

### Structures

[`IOSurfaceLockOptions`](/documentation/IOSurface/IOSurfaceLockOptions)

[`IOSurfacePropertyKey`](/documentation/IOSurface/IOSurfacePropertyKey)

[`IOSurfacePurgeabilityState`](/documentation/IOSurface/IOSurfacePurgeabilityState)

### Reference

[IOSurface Structures](/documentation/IOSurface/iosurface-structures)

[IOSurface Enumerations](/documentation/IOSurface/iosurface-enumerations)

[IOSurface Constants](/documentation/IOSurface/iosurface-constants)

[IOSurface Functions](/documentation/IOSurface/iosurface-functions)

[IOSurface Data Types](/documentation/IOSurface/iosurface-data-types)



---

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)