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

# RequestDeviceConfigurationChange

Tells the host to initiate a configuration change operation.

```
kern_return_t RequestDeviceConfigurationChange(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. The
host passes it back to the device when it invokes
PerformDeviceConfigurationChange(). 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, can be nullptr. 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

When a video device object needs to change its structure or change any
state related to IO for any reason, it must begin this operation by invoking
this Host method. The device object may not perform the state change until
the Host gives the device clearance to do so by invoking the
PerformDeviceConfigurationChange() routine. Note that the host may defer the
call to PerformDeviceConfigurationChange() to another thread.

The sorts of changes that must go through this mechanism are anything that
affects either the structure of the device or IO. This includes, but is not
limited to, changing stream layout, adding/removing controls, changing the
nominal sample rate of the device, changing any sample formats on any stream
on the device, changing the size of the ring buffer, changing presentation
latency, and changing the safety offset.

---

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)