---
title: changePowerStateTo
framework: kernel
role: pseudoSymbol
path: kernel/ioservice/1809809-changepowerstateto
---

# changePowerStateTo

Sets a driver's power state.

## Declaration

```occ
IOReturn changePowerStateTo(
 unsigned longordinal ); 
```

## Parameters

- `ordinal`: The number of the desired power state in the power state array.

## Return Value

Return Value A return code that can be ignored by the caller.

## Overview

Overview This function is one of several that are used to set a driver's power state. In most circumstances, however, you should call changePowerStateToPriv instead. Calls to changePowerStateTo, changePowerStateToPriv, and a driver's power children all affect the power state of a driver. For legacy design reasons, they have overlapping functionality. Although you should call changePowerStateToPriv to change your device's power state, you might need to call changePowerStateTo in the following circumstances: If a driver will be using changePowerStateToPriv to change its power state, it should call changePowerStateTo(0) in its start routine to eliminate the influence changePowerStateTo has on power state calculations. Call changePowerStateTo in conjunction with setIdleTimerPeriod and activityTickle to idle a driver into a low power state. For a driver with 3 power states, for example, changePowerStateTo(1) sets a minimum level of power state 1, such that the idle timer period may not set your device's power any lower than state 1.

## See Also

### Miscellaneous

- [acknowledgePowerChange](kernel/ioservice/1809710-acknowledgepowerchange.md)
- [acknowledgeSetPowerState](kernel/ioservice/1532596-acknowledgesetpowerstate.md)
- [activityTickle](kernel/ioservice/1809731-activitytickle.md)
- [addLocation](kernel/ioservice/1809740-addlocation.md)
- [addMatchingNotification](kernel/ioservice/1809749-addmatchingnotification.md)
- [addNotification](kernel/ioservice/1809760-addnotification.md)
- [addPowerChild](kernel/ioservice/1809766-addpowerchild.md)
- [adjustBusy](kernel/ioservice/1809776-adjustbusy.md)
- [attach](kernel/ioservice/1809786-attach.md)
- [callPlatformFunction](kernel/ioservice/1809795-callplatformfunction.md)
- [causeInterrupt](kernel/ioservice/1809803-causeinterrupt.md)
- [changePowerStateToPriv](kernel/ioservice/1809819-changepowerstatetopriv.md)
- [clampPowerOn](kernel/ioservice/1809824-clamppoweron.md)
- [close](kernel/ioservice/1809831-close.md)
- [command_received](kernel/ioservice/1809840-command_received.md)
- [compareProperties](kernel/ioservice/1809848-compareproperties.md)
- [compareProperty(OSDictionary *, const char *)](kernel/ioservice/1809855-compareproperty.md)
- [compareProperty(OSDictionary *, const OSString *)](kernel/ioservice/1809861-compareproperty.md)
- [configureReport](kernel/ioservice/1809870-configurereport.md)
- [copyClientWithCategory](kernel/ioservice/1809878-copyclientwithcategory.md)
- [copyMatchingService](kernel/ioservice/1809887-copymatchingservice.md)
- [currentCapability](kernel/ioservice/1809891-currentcapability.md)
- [currentPowerConsumption](kernel/ioservice/1809899-currentpowerconsumption.md)
- [deRegisterInterestedDriver](kernel/ioservice/1809905-deregisterinteresteddriver.md)
- [detach](kernel/ioservice/1809913-detach.md)
- [didTerminate](kernel/ioservice/1809918-didterminate.md)
- [didYouWakeSystem](kernel/ioservice/1809924-didyouwakesystem.md)
- [disableInterrupt](kernel/ioservice/1809929-disableinterrupt.md)
- [enableInterrupt](kernel/ioservice/1809937-enableinterrupt.md)
- [errnoFromReturn](kernel/ioservice/1809942-errnofromreturn.md)
- [finalize](kernel/ioservice/1809948-finalize.md)
- [free](kernel/ioservice/1809960-free.md)
- [getAggressiveness](kernel/ioservice/1809962-getaggressiveness.md)
- [getBusyState](kernel/ioservice/1809968-getbusystate.md)
- [getClient](kernel/ioservice/1809973-getclient.md)
- [getClientIterator](kernel/ioservice/1809979-getclientiterator.md)
- [getDeviceMemory](kernel/ioservice/1809984-getdevicememory.md)
- [getDeviceMemoryCount](kernel/ioservice/1809990-getdevicememorycount.md)
- [getDeviceMemoryWithIndex](kernel/ioservice/1809999-getdevicememorywithindex.md)
- [getInterruptType](kernel/ioservice/1810004-getinterrupttype.md)
- [getMatchingServices](kernel/ioservice/1810011-getmatchingservices.md)
- [getOpenClientIterator](kernel/ioservice/1810018-getopenclientiterator.md)
- [getOpenProviderIterator](kernel/ioservice/1810027-getopenprovideriterator.md)
- [getPlatform](kernel/ioservice/1810033-getplatform.md)
- [getPMRootDomain](kernel/ioservice/1810046-getpmrootdomain.md)
- [getPMworkloop](kernel/ioservice/1810059-getpmworkloop.md)
- [getPowerState](kernel/ioservice/1810074-getpowerstate.md)
- [getProvider](kernel/ioservice/1810088-getprovider.md)
- [getProviderIterator](kernel/ioservice/1810097-getprovideriterator.md)
- [getResources](kernel/ioservice/1810107-getresources.md)
- [getResourceService](kernel/ioservice/1810116-getresourceservice.md)
- [getServiceRoot](kernel/ioservice/1810122-getserviceroot.md)
- [getState](kernel/ioservice/1810137-getstate.md)
- [getWorkLoop](kernel/ioservice/1810145-getworkloop.md)
- [handleClose](kernel/ioservice/1810153-handleclose.md)
- [handleIsOpen](kernel/ioservice/1810164-handleisopen.md)
- [handleOpen](kernel/ioservice/1810174-handleopen.md)
- [initialPowerStateForDomainState](kernel/ioservice/1810182-initialpowerstatefordomainstate.md)
- [isInactive](kernel/ioservice/1810198-isinactive.md)
- [isOpen](kernel/ioservice/1810209-isopen.md)
- [joinPMtree](kernel/ioservice/1810216-joinpmtree.md)
- [lockForArbitration](kernel/ioservice/1810228-lockforarbitration.md)
- [makeUsable](kernel/ioservice/1810246-makeusable.md)
- [mapDeviceMemoryWithIndex](kernel/ioservice/1810261-mapdevicememorywithindex.md)
- [matchLocation](kernel/ioservice/1810275-matchlocation.md)
- [matchPropertyTable](kernel/ioservice/1810286-matchpropertytable.md)
- [maxCapabilityForDomainState](kernel/ioservice/1810302-maxcapabilityfordomainstate.md)
- [message](kernel/ioservice/1810323-message.md)
- [messageClient](kernel/ioservice/1810334-messageclient.md)
- [messageClients](kernel/ioservice/1810353-messageclients.md)
- [nameMatching(const char *, OSDictionary *)](kernel/ioservice/1810365-namematching.md)
- [nameMatching(const OSString *, OSDictionary *)](kernel/ioservice/1810383-namematching.md)
- [newTemperature](kernel/ioservice/1810402-newtemperature.md)
- [newUserClient](kernel/ioservice/1810417-newuserclient.md)
- [nextIdleTimeout](kernel/ioservice/1810435-nextidletimeout.md)
- [open](kernel/ioservice/1810450-open.md)
- [PM_Clamp_Timer_Expired](kernel/ioservice/1810463-pm_clamp_timer_expired.md)
- [PM_idle_timer_expiration](kernel/ioservice/1810474-pm_idle_timer_expiration.md)
- [PMinit](kernel/ioservice/1810486-pminit.md)
- [PMstop](kernel/ioservice/1810502-pmstop.md)
- [powerChangeDone](kernel/ioservice/1810518-powerchangedone.md)
- [powerOverrideOffPriv](kernel/ioservice/1810533-poweroverrideoffpriv.md)
- [powerOverrideOnPriv](kernel/ioservice/1810549-poweroverrideonpriv.md)
- [powerStateDidChangeTo](kernel/ioservice/1810564-powerstatedidchangeto.md)
- [powerStateForDomainState](kernel/ioservice/1810576-powerstatefordomainstate.md)
- [powerStateWillChangeTo](kernel/ioservice/1810597-powerstatewillchangeto.md)
- [probe](kernel/ioservice/1810605-probe.md)
- [propertyMatching](kernel/ioservice/1810622-propertymatching.md)
- [publishResource(const char *, OSObject *)](kernel/ioservice/1810642-publishresource.md)
- [publishResource(const OSSymbol *, OSObject *)](kernel/ioservice/1810661-publishresource.md)
- [registerInterestedDriver](kernel/ioservice/1810675-registerinteresteddriver.md)
- [registerInterrupt](kernel/ioservice/1810691-registerinterrupt.md)
- [registerPowerDriver](kernel/ioservice/1810706-registerpowerdriver.md)
- [registerService](kernel/ioservice/1810726-registerservice.md)
- [registryEntryIDMatching](kernel/ioservice/1810750-registryentryidmatching.md)
- [removePowerChild](kernel/ioservice/1810770-removepowerchild.md)
- [requestPowerDomainState](kernel/ioservice/1810786-requestpowerdomainstate.md)
- [requestProbe](kernel/ioservice/1810804-requestprobe.md)
- [requestTerminate](kernel/ioservice/1810819-requestterminate.md)
- [resourceMatching(const char *, OSDictionary *)](kernel/ioservice/1810840-resourcematching.md)
- [resourceMatching(const OSString *, OSDictionary *)](kernel/ioservice/1810857-resourcematching.md)
- [serviceMatching(const char *, OSDictionary *)](kernel/ioservice/1810880-servicematching.md)
- [serviceMatching(const OSString *, OSDictionary *)](kernel/ioservice/1810901-servicematching.md)
- [setAggressiveness](kernel/ioservice/1810925-setaggressiveness.md)
- [setDeviceMemory](kernel/ioservice/1810946-setdevicememory.md)
- [setIdleTimerPeriod](kernel/ioservice/1810962-setidletimerperiod.md)
- [setPowerParent](kernel/ioservice/1810987-setpowerparent.md)
- [setPowerState](kernel/ioservice/1532866-setpowerstate.md)
- [start](kernel/ioservice/1811009-start.md)
- [start_PM_idle_timer](kernel/ioservice/1811024-start_pm_idle_timer.md)
- [stop](kernel/ioservice/1811034-stop.md)
- [stringFromReturn](kernel/ioservice/1811046-stringfromreturn.md)
- [systemWake](kernel/ioservice/1811056-systemwake.md)
- [systemWillShutdown](kernel/ioservice/1811071-systemwillshutdown.md)
- [temperatureCriticalForZone](kernel/ioservice/1811087-temperaturecriticalforzone.md)
- [temporaryPowerClampOn](kernel/ioservice/1811099-temporarypowerclampon.md)
- [terminate](kernel/ioservice/1811110-terminate.md)
- [terminateClient](kernel/ioservice/1811121-terminateclient.md)
- [unlockForArbitration](kernel/ioservice/1811130-unlockforarbitration.md)
- [unregisterInterrupt](kernel/ioservice/1811142-unregisterinterrupt.md)
- [updateReport](kernel/ioservice/1811152-updatereport.md)
- [waitForMatchingService](kernel/ioservice/1811164-waitformatchingservice.md)
- [waitForService](kernel/ioservice/1811172-waitforservice.md)
- [waitQuiet](kernel/ioservice/1811184-waitquiet.md)
- [willTerminate](kernel/ioservice/1811202-willterminate.md)
- [youAreRoot](kernel/ioservice/1811214-youareroot.md)
