<!--
{
  "availability" : [
    "DriverKit: 27.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "VideoDriverKit",
  "identifier" : "/documentation/VideoDriverKit/IOUserVideoDevice/PerformDeviceConfigurationChange",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "VideoDriverKit"
    ],
    "preciseIdentifier" : "c:@S@IOUserVideoDevice@F@PerformDeviceConfigurationChange#k#*$@S@OSObject#"
  },
  "title" : "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.

```
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

A kern_return_t value indicating success or failure.

## 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.

---

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)