<!--
{
  "availability" : [
    "DriverKit: -",
    "iOS: -",
    "iPadOS: -",
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "DriverKit",
  "identifier" : "/documentation/DriverKit/IOService/ChangePowerState",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "DriverKit"
    ],
    "preciseIdentifier" : "c:@S@IOService@F@ChangePowerState#i#"
  },
  "title" : "ChangePowerState"
}
-->

# ChangePowerState

Changes the device’s power state to the specified level.

```
virtual kern_return_t ChangePowerState(uint32_t powerFlags);
```

## Parameters

`powerFlags`

The new power state for the device. Typically, you specify only [`kIOServicePowerCapabilityLow`](/documentation/DriverKit/kIOServicePowerCapabilityLow) for this parameter. For a list of all possible values, see [Service Power Capabilities](/documentation/DriverKit/3325571-service_power_capabilities).

## Return Value

[`kIOReturnSuccess`](/documentation/DriverKit/kIOReturnSuccess) on success, or another value if an error occurs. For a list of error codes, see [Error Codes](/documentation/DriverKit/error-codes).

## Discussion

If the new state is different than the device’s current state, this method places an asynchronous request to change the state to the new value. If the change is successful, the system subsequently calls the [`SetPowerState`](/documentation/DriverKit/IOService/SetPowerState) method of your service.

---

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)