---
title: PerformDeviceConfigurationChange
framework: VideoDriverKit
role: symbol
role_heading: Instance Method
platforms: [driverkit 27.0+]
path: videodriverkit/iouservideodevice/performdeviceconfigurationchange
---

# PerformDeviceConfigurationChange

The host calls this method to allow the device to perform a configuration change it previously requested by calling RequestDeviceConfigurationChange(), or a change to an IO state that requires a configuration change.

## Declaration

```occ
virtual kern_return_t PerformDeviceConfigurationChange(uint64_t in_change_action, OSObject *in_change_info);
```

## Parameters

- `in_change_action`: A uint64_t indicating the action the device object wants to take. This is the same value passed to RequestDeviceConfigurationChange(). Note that this value is purely for the driver’s usage. The host does not look at this value.
- `in_change_info`: A pointer to an OSObject about the configuration change. This is the same value passed to RequestDeviceConfigurationChange(). Note that this value is purely for the driver’s usage. The host does not look at this value. Retain or release the object reference as necessary.

## Return Value

Return Value A kern_return_t value indicating success or failure.

## Discussion

Discussion Subclass and override this method to handle any custom configuration change requests. Then call the superclass implementation to update state. The driver stops IO before performing the configuration change.

## See Also

### Supporting device configuration changes

- [AbortDeviceConfigurationChange](videodriverkit/iouservideodevice/abortdeviceconfigurationchange.md)
