---
title: initiatePowerStateChange
framework: kernel
role: pseudoSymbol
path: kernel/ioaudiodevice/1811782-initiatepowerstatechange
---

# initiatePowerStateChange

Called internally to execute a power state change

## Declaration

```occ
virtual IOReturn initiatePowerStateChange(
 UInt32 *microsecondsUntilComplete = NULL); 
```

## Parameters

- `microsecondsUntilComplete`: Pointer to the microsecondsUntilComplete that should be set by performPowerStateChange if an asynchronous power state change was started.

## Return Value

Return Value Returns kIOReturnSuccess on success

## Overview

Overview This function must be called on the IOWorkLoop. It calls performPowerStateChange() to let the driver process the state change. If the state change is completed synchronously by the driver (subclass) it calls protectedCompletePowerStateChange(). If done asynchronously it returns the microsecondsUntilComplete that was set by performPowerStateChange(). This function should not be called directly.

## See Also

### Miscellaneous

- [activateAudioEngine(IOAudioEngine *)](kernel/ioaudiodevice/1811648-activateaudioengine.md)
- [activateAudioEngine(IOAudioEngine *, bool)](kernel/ioaudiodevice/1811655-activateaudioengine.md)
- [addTimerEvent](kernel/ioaudiodevice/1811662-addtimerevent.md)
- [attachAudioPort](kernel/ioaudiodevice/1811666-attachaudioport.md)
- [audioEngineStarting](kernel/ioaudiodevice/1811673-audioenginestarting.md)
- [audioEngineStopped](kernel/ioaudiodevice/1811679-audioenginestopped.md)
- [completePowerStateChange](kernel/ioaudiodevice/1811685-completepowerstatechange.md)
- [completePowerStateChangeAction](kernel/ioaudiodevice/1811692-completepowerstatechangeaction.md)
- [deactivateAllAudioEngines](kernel/ioaudiodevice/1811697-deactivateallaudioengines.md)
- [detachAllAudioPorts](kernel/ioaudiodevice/1811704-detachallaudioports.md)
- [dispatchTimerEvents](kernel/ioaudiodevice/1811710-dispatchtimerevents.md)
- [flushAudioControls](kernel/ioaudiodevice/1811716-flushaudiocontrols.md)
- [free](kernel/ioaudiodevice/1811723-free.md)
- [getCommandGate](kernel/ioaudiodevice/1811730-getcommandgate.md)
- [getPendingPowerState](kernel/ioaudiodevice/1811740-getpendingpowerstate.md)
- [getPowerState](kernel/ioaudiodevice/1811749-getpowerstate.md)
- [getWorkLoop](kernel/ioaudiodevice/1811757-getworkloop.md)
- [init](kernel/ioaudiodevice/1811765-init.md)
- [initHardware](kernel/ioaudiodevice/1811773-inithardware.md)
- [performPowerStateChange](kernel/ioaudiodevice/1811791-performpowerstatechange.md)
- [protectedCompletePowerStateChange](kernel/ioaudiodevice/1811798-protectedcompletepowerstatechang.md)
- [protectedSetPowerState](kernel/ioaudiodevice/1811807-protectedsetpowerstate.md)
- [removeAllTimerEvents](kernel/ioaudiodevice/1811813-removealltimerevents.md)
- [removeTimerEvent](kernel/ioaudiodevice/1811823-removetimerevent.md)
- [setConfigurationApplicationBundle](kernel/ioaudiodevice/1811829-setconfigurationapplicationbundl.md)
- [setDeviceCanBeDefault](kernel/ioaudiodevice/1811833-setdevicecanbedefault.md)
- [setDeviceName](kernel/ioaudiodevice/1811841-setdevicename.md)
- [setDeviceShortName](kernel/ioaudiodevice/1811844-setdeviceshortname.md)
- [setFamilyManagePower](kernel/ioaudiodevice/1811848-setfamilymanagepower.md)
- [setIdleAudioSleepTime](kernel/ioaudiodevice/1811852-setidleaudiosleeptime.md)
- [setManufacturerName](kernel/ioaudiodevice/1811862-setmanufacturername.md)
- [setPowerState](kernel/ioaudiodevice/1811867-setpowerstate.md)
- [setPowerStateAction](kernel/ioaudiodevice/1811878-setpowerstateaction.md)
- [start](kernel/ioaudiodevice/1811891-start.md)
- [stop](kernel/ioaudiodevice/1811898-stop.md)
- [timerFired](kernel/ioaudiodevice/1811908-timerfired.md)
- [waitForPendingPowerStateChange](kernel/ioaudiodevice/1811913-waitforpendingpowerstatechange.md)
