---
title: initialPowerStateForDomainState
framework: kernel
role: pseudoSymbol
path: kernel/ioservice/1810182-initialpowerstatefordomainstate
---

# initialPowerStateForDomainState

Determines which power state a device is in, given the current power domain state.

## Declaration

```occ
virtual unsigned long initialPowerStateForDomainState(
 IOPMPowerFlagsdomainState ); 
```

## Parameters

- `domainState`: Flags that describe the character of "domain power"; they represent the outputPowerCharacter field of a state in the power domain's power state array.

## Return Value

Return Value A state number.

## Overview

Overview Power management calls this method once, when the driver is initializing power management. Most drivers do not need to implement this method, and can rely upon the default IOService implementation. The IOService implementation scans the power state array looking for the highest state whose inputPowerRequirement field exactly matches the value of the domainState parameter. If more intelligent determination is required, the power managed driver should implement the method and override the superclass's implementation.

## 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)
- [changePowerStateTo](kernel/ioservice/1809809-changepowerstateto.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)
- [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)
