---
title: VZCustomVirtioDeviceConfiguration
framework: virtualization
role: symbol
role_heading: Class
path: virtualization/vzcustomvirtiodeviceconfiguration
---

# VZCustomVirtioDeviceConfiguration

An object that defines a custom Virtio Device configuration.

## Declaration

```swift
class VZCustomVirtioDeviceConfiguration
```

## Overview

Overview VZCustomVirtioDeviceConfiguration defines the configuration of a VZCustomVirtioDevice. In order for a guest to be able to discover a Virtio device, you need to configure the following properties in the custom device configuration: deviceID pciClassID pciSubclassID virtioQueueCount The remaining custom device configuration properties define additional features and configurations that are specific to the kind of Virtio device you’re defining. If the VZCustomVirtioDeviceConfiguration you configure is valid, the Virtualization framework creates a VZCustomVirtioDevice upon the creation of the VZVirtualMachine. The framework notifies you upon creating the device by calling customVirtioConfiguration(_:didCreateDevice:) on the delegate method you provide.

## Topics

### Instance Properties

- [deviceID](virtualization/vzcustomvirtiodeviceconfiguration/deviceid.md)
- [deviceSpecificConfiguration](virtualization/vzcustomvirtiodeviceconfiguration/devicespecificconfiguration.md)
- [mandatoryFeatures](virtualization/vzcustomvirtiodeviceconfiguration/mandatoryfeatures.md)
- [optionalFeatures](virtualization/vzcustomvirtiodeviceconfiguration/optionalfeatures.md)
- [pciClassID](virtualization/vzcustomvirtiodeviceconfiguration/pciclassid.md)
- [pciSubclassID](virtualization/vzcustomvirtiodeviceconfiguration/pcisubclassid.md)
- [provider](virtualization/vzcustomvirtiodeviceconfiguration/provider.md)
- [sharedMemoryRegions](virtualization/vzcustomvirtiodeviceconfiguration/sharedmemoryregions.md)
- [supportsSaveRestore](virtualization/vzcustomvirtiodeviceconfiguration/supportssaverestore.md)
- [virtioQueueCount](virtualization/vzcustomvirtiodeviceconfiguration/virtioqueuecount.md)

### Type Properties

- [maximumAllowedSharedMemoryRegionCount](virtualization/vzcustomvirtiodeviceconfiguration/maximumallowedsharedmemoryregioncount.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Related Documentation

- [VZCustomVirtioDevice](virtualization/vzcustomvirtiodevice.md)
- [VZCustomVirtioDeviceConfigurationDelegate](virtualization/vzcustomvirtiodeviceconfigurationdelegate.md)

### Creating and configuring Virtio drivers

- [VZCustomVirtioDevice](virtualization/vzcustomvirtiodevice.md)
- [VZVirtioDeviceSpecificConfiguration](virtualization/vzvirtiodevicespecificconfiguration.md)
