<!--
{
  "availability" : [
    "DriverKit: -",
    "iOS: -",
    "iPadOS: -",
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "DriverKit",
  "identifier" : "/documentation/DriverKit/OSSerialization",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "DriverKit"
    ],
    "preciseIdentifier" : "c:@S@OSSerialization"
  },
  "title" : "OSSerialization"
}
-->

# OSSerialization

A container for one or more objects, serialized in a binary data format that is suitable for messaging.

```
class OSSerialization;
```

## Overview

OSSerialization provides methods to serialize an object to binary data suitable for messaging. Only certain DriverKit classes may be serialized: OSData, OSString, OSNumber, OSBoolean, OSArray, OSDictionary.

OSSerialization provides no concurrency protection; it’s up to the usage context to provide any protection necessary.

## Topics

### Creating a Serialization Object

[`OSSerializationPtrOSCreateSerializationFromBytes(const void *bytes, size_t length, OSSerializationFreeBufferHandler freeBuffer);`](/documentation/DriverKit/OSCreateSerializationFromBytes)

[`OSSerializationPtrOSCreateSerializationFromObject(OSObjectPtr obj);`](/documentation/DriverKit/OSCreateSerializationFromObject)

[`virtual void free();`](/documentation/DriverKit/OSSerialization/free)

[`typedef void (^)(const void *, unsigned long) OSSerializationFreeBufferHandler;`](/documentation/DriverKit/OSSerializationFreeBufferHandler)

[`typedef OSSerialization * OSSerializationPtr;`](/documentation/DriverKit/OSSerializationPtr)

### Getting the Serialized Content

[`OSObjectPtr copyObject();`](/documentation/DriverKit/OSSerialization/copyObject)

Obtain the result of the deserialization performed by createFromBytes().

[`OSObjectPtrOSCreateObjectFromSerialization(OSSerializationPtr serial);`](/documentation/DriverKit/OSCreateObjectFromSerialization)

[`const void *OSSerializationGetBytes(OSSerializationPtr serial, size_t *length);`](/documentation/DriverKit/OSSerializationGetBytes)

[`const void * finalizeBuffer(size_t *length);`](/documentation/DriverKit/OSSerialization/finalizeBuffer)

Obtain the result of the serialization performed by createFromObject().

### Type Methods

[`static void freeBuffer(const void *buffer, size_t length);`](/documentation/DriverKit/OSSerialization/freeBuffer)

### Type Methods

[`static OSSerializationPtr createFromBytes(const void *bytes, size_t length, OSSerializationFreeBufferHandler freeBuffer, OSSerializationPortCopyInHandler copyInHandler);`](/documentation/DriverKit/OSSerialization/createFromBytes-8jjh8)

[`static OSSerializationPtr createFromBytes(const void *bytes, size_t length, OSSerializationFreeBufferHandler freeBuffer);`](/documentation/DriverKit/OSSerialization/createFromBytes-9lb79)

[`static OSSerializationPtr createFromObject(OSObjectPtr const object);`](/documentation/DriverKit/OSSerialization/createFromObject-2st9w)

[`static OSSerializationPtr createFromObject(OSObjectPtr const object, OSSerializationPortCopyOutHandler copyOutHandler);`](/documentation/DriverKit/OSSerialization/createFromObject-4rdec)

## Relationships

### Inherits From

[`OSContainer`](/documentation/DriverKit/OSContainer)

---

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)