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

# PerformDeviceConfigurationChange

The host calls this method to allow the clock device to perform a configuration
change.

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

## Parameters

`change_action`

The action the device object wants to take. This is
the same value that was passed to `RequestDeviceConfigurationChange()`.
Note that this value is purely for the driver’s usage. The host doesn’t
look at this value.

`in_change_info`

A pointer to an `OSObject` about the configuration change. This is the
same value that was passed to `RequestDeviceConfigurationChange()`. Note
that this value is purely for the driver’s usage. The host doesn’t
look at this value. Object reference should be retained/released as necessary.

## Discussion

The configuration change is one that had been previously requested via a call to the host via
`RequestDeviceConfigChange` or a change to an IO state that
requires a configuration change.

Subclass and override this method to handle any custom configuration change requests, then
call the superclass implementation to update state.
IO will be stopped prior to the 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)