<!--
{
  "availability" : [
    "macOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Virtualization",
  "identifier" : "/documentation/Virtualization/VZVirtioSharedMemoryRegionConfiguration",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Virtualization"
    ],
    "preciseIdentifier" : "c:objc(cs)VZVirtioSharedMemoryRegionConfiguration"
  },
  "title" : "VZVirtioSharedMemoryRegionConfiguration"
}
-->

# VZVirtioSharedMemoryRegionConfiguration

The configuration of a Virtio shared memory region.

```
class VZVirtioSharedMemoryRegionConfiguration
```

## Overview

A `VZVirtioSharedMemoryRegionConfiguration` represents a memory region that’s continuously shared between the custom Virtio device
implementation and the guest. A shared memory region is identified by an ID, whose meaning is specific to the device.

After configuration,  the framework advertises the shared memory region to the guest. During runtime, you can use the
[`mapMemory(_:atOffset:size:completionHandler:)`](/documentation/Virtualization/VZVirtioSharedMemoryRegion/mapMemory(_:atOffset:size:completionHandler:)) and
[`unmapMemory(atOffset:size:completionHandler:)`](/documentation/Virtualization/VZVirtioSharedMemoryRegion/unmapMemory(atOffset:size:completionHandler:)) APIs to map and unmap host memory into the shared memory region. How a device uses a shared memory region is specific to the device.

## Topics

### Initializers

[`init(regionID: UInt8, size: UInt64)`](/documentation/Virtualization/VZVirtioSharedMemoryRegionConfiguration/init(regionID:size:))

Initializes a shared memory region with a shared memory region ID and size.

### Instance Properties

[`var regionID: UInt8`](/documentation/Virtualization/VZVirtioSharedMemoryRegionConfiguration/regionID)

The shared memory region ID.

[`var size: UInt64`](/documentation/Virtualization/VZVirtioSharedMemoryRegionConfiguration/size)

The size of the shared memory region.

## See Also

[`class VZCustomVirtioDeviceConfiguration`](/documentation/Virtualization/VZCustomVirtioDeviceConfiguration)

An object that defines a custom Virtio Device configuration.

[`class VZCustomVirtioDevice`](/documentation/Virtualization/VZCustomVirtioDevice)

An interface that represents a custom Virtio device that you provide the implementation for.

[`class VZVirtioSharedMemoryRegion`](/documentation/Virtualization/VZVirtioSharedMemoryRegion)

A class that represents a Virtio shared memory region for a custom Virtio device in a virtual machine.

## Relationships

### Conforms To

[`CVarArg`](/documentation/Swift/CVarArg)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`NSCopying`](/documentation/Foundation/NSCopying)

[`Equatable`](/documentation/Swift/Equatable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`Hashable`](/documentation/Swift/Hashable)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)