---
title: IOService
framework: kernel
role: symbol
role_heading: Class
path: kernel/ioservice
---

# IOService

The base class for most I/O Kit families, devices, and drivers.

## Declaration

```occ
class IOService : IORegistryEntry
```

## Overview

Overview IOService provides general utility functions that are useful across all families. It defines APIs used to publish services, instantiates other services based on the existence of a providing service such as driver stacking, destroys a service and its dependent stack, and notifies interested parties of service state changes. This class uses a matching dictionary that contains service type properties to discover supported devices. For example, a matching dictionary may describe a IOUSBHostDevice (or subclass), an IOUSBHostDevice with a certain class code, or an IOPCIDevice with a set of matching names or device and vendor IDs. The list of properties considered for matching depends on the family that creates the dictionary. Matching dictionaries are associated with IOService classes by the catalogue, as driver property tables, and also supplied by clients of the notification APIs. IOService performs matching based on several criteria: the C++ class (using OSMetaClass dynamic casting), the registry entry name, a registry path to the service (which includes device tree paths), a name assigned by BSD, or  location (point of attachment). Instantiate Drivers Drivers are subclasses of IOService, and the catalogue manages their availability. The system instantiates drivers based on the publication of an IOService they use (for example, an IOPCIDevice or IOUSBHostDevice), or when they are added to the catalogue and the I/O services they use are already available. When registerService publishes the IOService, the matching and probing process begins. This is always single threaded per provider. The system constructs a list of matching dictionaries from the catalogue and installed publish notification requests that successfully match the service, along with ordering supplied by kIOProbeScoreKey in the dictionary, or supplied with the notification. Each entry in the list is then processed in order. For notifications, the notification is delivered. For driver property tables, a lot more happens. The system instantiates the driver class and calls init() with its property table, attaches the new driver instance to the provider, and calls probe with the provider as an argument. The default probe method returns success — your driver should implement this method to interrogate the provider to make sure it can work with it. It may also modify its probe score at this time. After probing, the system detaches the driver and attaches the next one in the list for probing. When the probing phase completes, the list consists of successfully probed drivers, in order of their probe score (after adjustments during the probe call). The system divides the list into categories based on the kIOMatchCategoryKey property. Drivers without a match category are considered in one default category. Match categories allow multiple clients of a provider to attach and start, though the provider may also enforce open/close semantics to gain active access to it. For each category, the system attaches the highest scoring driver in that category to the provider, then calls start. If the method returns success, the system discards the rest of the drivers in the same match category; otherwise, it starts the next highest scoring driver. The driver should only consider itself ready for work when the system calls its start method. This indicates that the driver is using the provider and consuming that match category. The driver should also be prepared for allocation, probing and freeing, even if the probe is successful. After the drivers are synchronously started, the system delivers the installed “matched” notifications that match the registered service. Match with Service Properties Here are the service properties you can use when setting up the matching dictionary.

## Topics

### 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)
- [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)

### DataTypes

- [ExpansionData](kernel/ioservice/expansiondata.md)

### Instance Variables

- [reserved](kernel/ioservice/reserved.md)

### Instance Methods

- [AdjustBusy](kernel/ioservice/3753458-adjustbusy.md)
- [AdjustBusy_Impl](kernel/ioservice/3753459-adjustbusy_impl.md)
- [ChangePowerState](driverkit/ioservice/changepowerstate.md)
- [ChangePowerState_Impl](kernel/ioservice/3152487-changepowerstate_impl.md)
- [ClientCrashed](kernel/ioservice/3727923-clientcrashed.md)
- [ClientCrashed_Impl](kernel/ioservice/3727924-clientcrashed_impl.md)
- [ConfigureReport](kernel/ioservice/3753461-configurereport.md)
- [ConfigureReport_Impl](kernel/ioservice/3753462-configurereport_impl.md)
- [CopyDispatchQueue_Impl](kernel/ioservice/3075032-copydispatchqueue_impl.md)
- [CopyName](kernel/ioservice/3753464-copyname.md)
- [CopyName_Impl](kernel/ioservice/3753465-copyname_impl.md)
- [CopyProperties](driverkit/ioservice/copyproperties.md)
- [CopyProperties_Impl](kernel/ioservice/3180695-copyproperties_impl.md)
- [CopyProviderProperties](kernel/ioservice/3538559-copyproviderproperties.md)
- [CopyProviderProperties_Impl](kernel/ioservice/3538560-copyproviderproperties_impl.md)
- [CopySystemStateNotificationService](kernel/ioservice/3753467-copysystemstatenotificationservi.md)
- [CopySystemStateNotificationService_Impl](kernel/ioservice/3753468-copysystemstatenotificationservi.md)
- [CoreAnalyticsSendEvent](kernel/ioservice/3753470-coreanalyticssendevent.md)
- [CoreAnalyticsSendEvent_Impl](kernel/ioservice/3753471-coreanalyticssendevent_impl.md)
- [Create](kernel/ioservice/3325788-create.md)
- [CreateDefaultDispatchQueue](kernel/ioservice/3753473-createdefaultdispatchqueue.md)
- [CreateDefaultDispatchQueue_Impl](kernel/ioservice/3753474-createdefaultdispatchqueue_impl.md)
- [Create_Impl](kernel/ioservice/3325789-create_impl.md)
- [Dispatch](kernel/ioservice/3180697-dispatch.md)
- [GetBusyState](kernel/ioservice/3753476-getbusystate.md)
- [GetBusyState_Impl](kernel/ioservice/3753477-getbusystate_impl.md)
- [GetProvider](driverkit/ioservice/getprovider.md)
- [GetRegistryEntryID](driverkit/ioservice/getregistryentryid.md)
- [GetRegistryEntryID_Impl](kernel/ioservice/3180699-getregistryentryid_impl.md)
- [JoinPMTree](kernel/ioservice/4061663-joinpmtree.md)
- [JoinPMTree_Impl](kernel/ioservice/4061664-joinpmtree_impl.md)
- [NewUserClient](kernel/ioservice/3325791-newuserclient.md)
- [NewUserClient_Impl](kernel/ioservice/3325792-newuserclient_impl.md)
- [PMinit](kernel/ioservice/1532776-pminit.md)
- [PMstop](kernel/ioservice/1532667-pmstop.md)
- [RegisterService](driverkit/ioservice/registerservice.md)
- [RegisterService_Impl](kernel/ioservice/3075044-registerservice_impl.md)
- [RemoveProperty](kernel/ioservice/3753480-removeproperty.md)
- [RemoveProperty_Impl](kernel/ioservice/3753481-removeproperty_impl.md)
- [RequireMaxBusStall](kernel/ioservice/3689549-requiremaxbusstall.md)
- [RequireMaxBusStall_Impl](kernel/ioservice/3689550-requiremaxbusstall_impl.md)
- [SearchProperty](kernel/ioservice/3325794-searchproperty.md)
- [SearchProperty_Impl](kernel/ioservice/3325795-searchproperty_impl.md)
- [SendIOMessageServicePropertyChange](kernel/ioservice/3943382-sendiomessageservicepropertychan.md)
- [SendIOMessageServicePropertyChange_Impl](kernel/ioservice/3943383-sendiomessageservicepropertychan.md)
- [SetDispatchQueue_Impl](kernel/ioservice/3180703-setdispatchqueue_impl.md)
- [SetLegend](kernel/ioservice/3753483-setlegend.md)
- [SetLegend_Impl](kernel/ioservice/3753484-setlegend_impl.md)
- [SetName](kernel/ioservice/3325797-setname.md)
- [SetName_Impl](kernel/ioservice/3325798-setname_impl.md)
- [SetPowerOverride](kernel/ioservice/4485635-setpoweroverride.md)
- [SetPowerOverride_Impl](kernel/ioservice/4485636-setpoweroverride_impl.md)
- [SetPowerState](driverkit/ioservice/setpowerstate.md)
- [SetPowerState_Impl](kernel/ioservice/3180705-setpowerstate_impl.md)
- [SetProperties](kernel/ioservice/3075047-setproperties.md)
- [SetProperties_Impl](kernel/ioservice/3075048-setproperties_impl.md)
- [Start](driverkit/ioservice/start.md)
- [Start_Impl](kernel/ioservice/3180711-start_impl.md)
- [StateNotificationItemCopy](kernel/ioservice/3753486-statenotificationitemcopy.md)
- [StateNotificationItemCopy_Impl](kernel/ioservice/3753487-statenotificationitemcopy_impl.md)
- [StateNotificationItemCreate](kernel/ioservice/3753489-statenotificationitemcreate.md)
- [StateNotificationItemCreate_Impl](kernel/ioservice/3753490-statenotificationitemcreate_impl.md)
- [StateNotificationItemSet](kernel/ioservice/3753492-statenotificationitemset.md)
- [StateNotificationItemSet_Impl](kernel/ioservice/3753493-statenotificationitemset_impl.md)
- [Stop](driverkit/ioservice/stop.md)
- [Stop_Impl](kernel/ioservice/3180714-stop_impl.md)
- [Stop_async](kernel/ioservice/3684894-stop_async.md)
- [Stop_async_Impl](kernel/ioservice/3684895-stop_async_impl.md)
- [StringFromReturn](kernel/ioservice/3753495-stringfromreturn.md)
- [StringFromReturn](kernel/ioservice/3943385-stringfromreturn.md)
- [StringFromReturn_Impl](kernel/ioservice/3753496-stringfromreturn_impl.md)
- [Terminate](kernel/ioservice/3538570-terminate.md)
- [Terminate_Impl](kernel/ioservice/3538571-terminate_impl.md)
- [UpdateReport](kernel/ioservice/3753498-updatereport.md)
- [UpdateReport_Impl](kernel/ioservice/3753499-updatereport_impl.md)
- [UserSetProperties](kernel/ioservice/3753501-usersetproperties.md)
- [UserSetProperties_Impl](kernel/ioservice/3753502-usersetproperties_impl.md)
- [acknowledgeNotification](kernel/ioservice/1532615-acknowledgenotification.md)
- [acknowledgePowerChange](kernel/ioservice/1532614-acknowledgepowerchange.md)
- [activityTickle](kernel/ioservice/1532877-activitytickle.md)
- [addInterruptStatistics](kernel/ioservice/1532794-addinterruptstatistics.md)
- [addNeededResource](kernel/ioservice/1532799-addneededresource.md)
- [addPowerChild](kernel/ioservice/1532771-addpowerchild.md)
- [adjustBusy](kernel/ioservice/1532718-adjustbusy.md)
- [allowPowerChange](kernel/ioservice/1532563-allowpowerchange.md)
- [applyToClients](kernel/ioservice/1532705-applytoclients.md)
- [applyToClients](kernel/ioservice/3567140-applytoclients.md)
- [applyToInterested](kernel/ioservice/1532867-applytointerested.md)
- [applyToProviders](kernel/ioservice/1532775-applytoproviders.md)
- [applyToProviders](kernel/ioservice/3567141-applytoproviders.md)
- [askChangeDown](kernel/ioservice/1532647-askchangedown.md)
- [attach](kernel/ioservice/1532842-attach.md)
- [callPlatformFunction](kernel/ioservice/1532716-callplatformfunction.md)
- [callPlatformFunction](kernel/ioservice/3516483-callplatformfunction.md)
- [canTerminateForReplacement](kernel/ioservice/3857674-canterminateforreplacement.md)
- [cancelPowerChange](kernel/ioservice/1532580-cancelpowerchange.md)
- [causeInterrupt](kernel/ioservice/1532818-causeinterrupt.md)
- [changePowerStateTo](kernel/ioservice/1532683-changepowerstateto.md)
- [changePowerStateToPriv](kernel/ioservice/1532812-changepowerstatetopriv.md)
- [checkResource](kernel/ioservice/1532783-checkresource.md)
- [checkResources](kernel/ioservice/1532599-checkresources.md)
- [close](kernel/ioservice/1532865-close.md)
- [compareProperties](kernel/ioservice/1532808-compareproperties.md)
- [compareProperty](kernel/ioservice/1532873-compareproperty.md)
- [compareProperty](kernel/ioservice/3516484-compareproperty.md)
- [configureReport](kernel/ioservice/1532713-configurereport.md)
- [copyClientWithCategory](kernel/ioservice/1532583-copyclientwithcategory.md)
- [copyNotifiers](kernel/ioservice/2870324-copynotifiers.md)
- [currentCapability](kernel/ioservice/1532694-currentcapability.md)
- [currentPowerConsumption](kernel/ioservice/1532862-currentpowerconsumption.md)
- [deRegisterInterestedDriver](kernel/ioservice/1532853-deregisterinteresteddriver.md)
- [deliverNotification](kernel/ioservice/1532765-delivernotification.md)
- [detach](kernel/ioservice/1532594-detach.md)
- [didTerminate](kernel/ioservice/1532715-didterminate.md)
- [disableInterrupt](kernel/ioservice/1532634-disableinterrupt.md)
- [doServiceMatch](kernel/ioservice/1532795-doservicematch.md)
- [doServiceTerminate](kernel/ioservice/1532573-doserviceterminate.md)
- [enableInterrupt](kernel/ioservice/1532864-enableinterrupt.md)
- [errnoFromReturn](kernel/ioservice/1532706-errnofromreturn.md)
- [finalize](kernel/ioservice/1532659-finalize.md)
- [free](driverkit/ioservice/free.md)
- [getAggressiveness](kernel/ioservice/1532725-getaggressiveness.md)
- [getBusyState](kernel/ioservice/1532698-getbusystate.md)
- [getClient](kernel/ioservice/1532758-getclient.md)
- [getClientIterator](kernel/ioservice/1532748-getclientiterator.md)
- [getClientWithCategory](kernel/ioservice/1532672-getclientwithcategory.md)
- [getDeviceMemory](kernel/ioservice/1532588-getdevicememory.md)
- [getDeviceMemoryCount](kernel/ioservice/1532745-getdevicememorycount.md)
- [getDeviceMemoryWithIndex](kernel/ioservice/1532861-getdevicememorywithindex.md)
- [getInterruptType](kernel/ioservice/1532557-getinterrupttype.md)
- [getMetaClass](kernel/ioservice/1532719-getmetaclass.md)
- [getOpenClientIterator](kernel/ioservice/1532757-getopenclientiterator.md)
- [getOpenProviderIterator](kernel/ioservice/1532590-getopenprovideriterator.md)
- [getPowerState](kernel/ioservice/1532710-getpowerstate.md)
- [getProvider](kernel/ioservice/1532585-getprovider.md)
- [getProviderIterator](kernel/ioservice/1532627-getprovideriterator.md)
- [getResources](kernel/ioservice/1532807-getresources.md)
- [getState](kernel/ioservice/1532791-getstate.md)
- [getWorkLoop](kernel/ioservice/1532780-getworkloop.md)
- [handleClose](kernel/ioservice/1532838-handleclose.md)
- [handleIsOpen](kernel/ioservice/1532682-handleisopen.md)
- [handleOpen](kernel/ioservice/1532701-handleopen.md)
- [hasParent](kernel/ioservice/3857675-hasparent.md)
- [init](kernel/ioservice/1532700-init.md)
- [init](driverkit/ioservice/init.md)
- [initialPowerStateForDomainState](kernel/ioservice/1532851-initialpowerstatefordomainstate.md)
- [invokeNotifier](kernel/ioservice/2870327-invokenotifier.md)
- [invokeNotifiers](kernel/ioservice/2870325-invokenotifiers.md)
- [isInactive](kernel/ioservice/1532870-isinactive.md)
- [isOpen](kernel/ioservice/1532598-isopen.md)
- [joinPMtree](kernel/ioservice/1532587-joinpmtree.md)
- [lockForArbitration](kernel/ioservice/1532692-lockforarbitration.md)
- [lookupInterrupt](kernel/ioservice/1532726-lookupinterrupt.md)
- [makeUsable](kernel/ioservice/1532872-makeusable.md)
- [mapDeviceMemoryWithIndex](kernel/ioservice/1532762-mapdevicememorywithindex.md)
- [matchInternal](kernel/ioservice/1532714-matchinternal.md)
- [matchLocation](kernel/ioservice/1532803-matchlocation.md)
- [matchPassive](kernel/ioservice/1532642-matchpassive.md)
- [matchPropertyTable](kernel/ioservice/1532892-matchpropertytable.md)
- [matchPropertyTable](kernel/ioservice/3516485-matchpropertytable.md)
- [maxCapabilityForDomainState](kernel/ioservice/1532813-maxcapabilityfordomainstate.md)
- [message](kernel/ioservice/1532558-message.md)
- [messageClient](kernel/ioservice/1532884-messageclient.md)
- [messageClients](kernel/ioservice/1532646-messageclients.md)
- [newUserClient](kernel/ioservice/1532702-newuserclient.md)
- [newUserClient](kernel/ioservice/3516487-newuserclient.md)
- [newUserClient](kernel/ioservice/3553375-newuserclient.md)
- [newUserClient](kernel/ioservice/3553376-newuserclient.md)
- [nextIdleTimeout](kernel/ioservice/1532675-nextidletimeout.md)
- [open](kernel/ioservice/1532575-open.md)
- [passiveMatch](kernel/ioservice/1532787-passivematch.md)
- [powerChangeDone](kernel/ioservice/1532685-powerchangedone.md)
- [powerOverrideOffPriv](kernel/ioservice/1532855-poweroverrideoffpriv.md)
- [powerOverrideOnPriv](kernel/ioservice/1532639-poweroverrideonpriv.md)
- [powerStateDidChangeTo](kernel/ioservice/1532891-powerstatedidchangeto.md)
- [powerStateForDomainState](kernel/ioservice/1532649-powerstatefordomainstate.md)
- [powerStateWillChangeTo](kernel/ioservice/1532889-powerstatewillchangeto.md)
- [probe](kernel/ioservice/1532835-probe.md)
- [probeCandidates](kernel/ioservice/1532781-probecandidates.md)
- [registerInterest](kernel/ioservice/1532612-registerinterest.md)
- [registerInterest](kernel/ioservice/3516489-registerinterest.md)
- [registerInterestedDriver](kernel/ioservice/1532847-registerinteresteddriver.md)
- [registerInterrupt](kernel/ioservice/1532830-registerinterrupt.md)
- [registerInterruptBlock](kernel/ioservice/2967276-registerinterruptblock.md)
- [registerPowerDriver](kernel/ioservice/1532665-registerpowerdriver.md)
- [registerService](kernel/ioservice/1532797-registerservice.md)
- [removeInterruptStatistics](kernel/ioservice/1532663-removeinterruptstatistics.md)
- [removePowerChild](kernel/ioservice/1532779-removepowerchild.md)
- [requestPowerDomainState](kernel/ioservice/1532751-requestpowerdomainstate.md)
- [requestProbe](kernel/ioservice/1532789-requestprobe.md)
- [requestTerminate](kernel/ioservice/1532728-requestterminate.md)
- [requireMaxBusStall](kernel/ioservice/1532887-requiremaxbusstall.md)
- [requireMaxInterruptDelay](kernel/ioservice/1532798-requiremaxinterruptdelay.md)
- [resolveInterrupt](kernel/ioservice/1532677-resolveinterrupt.md)
- [scheduleStop](kernel/ioservice/1532571-schedulestop.md)
- [scheduleTerminatePhase2](kernel/ioservice/1532641-scheduleterminatephase2.md)
- [serializeProperties](kernel/ioservice/1532823-serializeproperties.md)
- [setAggressiveness](kernel/ioservice/1532679-setaggressiveness.md)
- [setDeviceMemory](kernel/ioservice/1532699-setdevicememory.md)
- [setIdleTimerPeriod](kernel/ioservice/1532753-setidletimerperiod.md)
- [start](kernel/ioservice/1532606-start.md)
- [startCandidate](kernel/ioservice/1532735-startcandidate.md)
- [startMatching](kernel/ioservice/1532845-startmatching.md)
- [start_PM_idle_timer](kernel/ioservice/1532669-start_pm_idle_timer.md)
- [stop](kernel/ioservice/1532568-stop.md)
- [stringFromReturn](kernel/ioservice/1532752-stringfromreturn.md)
- [systemWillShutdown](kernel/ioservice/1532569-systemwillshutdown.md)
- [tellChangeDown](kernel/ioservice/1532643-tellchangedown.md)
- [tellChangeUp](kernel/ioservice/1532625-tellchangeup.md)
- [tellNoChangeDown](kernel/ioservice/1532656-tellnochangedown.md)
- [temporaryPowerClampOn](kernel/ioservice/1532592-temporarypowerclampon.md)
- [terminate](kernel/ioservice/1532674-terminate.md)
- [terminateClient](kernel/ioservice/1532730-terminateclient.md)
- [terminatePhase1](kernel/ioservice/1532849-terminatephase1.md)
- [unlockForArbitration](kernel/ioservice/1532561-unlockforarbitration.md)
- [unregisterAllInterest](kernel/ioservice/1532882-unregisterallinterest.md)
- [unregisterAllInterrupts](kernel/ioservice/4445089-unregisterallinterrupts.md)
- [unregisterInterrupt](kernel/ioservice/1532856-unregisterinterrupt.md)
- [updateReport](kernel/ioservice/1532767-updatereport.md)
- [waitForState](kernel/ioservice/1532770-waitforstate.md)
- [waitForState](kernel/ioservice/3516492-waitforstate.md)
- [waitQuiet](kernel/ioservice/1532773-waitquiet.md)
- [waitQuiet](kernel/ioservice/3516493-waitquiet.md)
- [willTerminate](kernel/ioservice/1532846-willterminate.md)

### Type Methods

- [AdjustBusy_Invoke](kernel/ioservice/3753460-adjustbusy_invoke.md)
- [ChangePowerState_Invoke](kernel/ioservice/3152488-changepowerstate_invoke.md)
- [ClientCrashed_Invoke](kernel/ioservice/3727925-clientcrashed_invoke.md)
- [ConfigureReport_Invoke](kernel/ioservice/3753463-configurereport_invoke.md)
- [CopyName_Invoke](kernel/ioservice/3753466-copyname_invoke.md)
- [CopyProperties_Invoke](kernel/ioservice/3075035-copyproperties_invoke.md)
- [CopyProviderProperties_Invoke](kernel/ioservice/3538561-copyproviderproperties_invoke.md)
- [CopySystemStateNotificationService_Invoke](kernel/ioservice/3753469-copysystemstatenotificationservi.md)
- [CoreAnalyticsSendEvent_Invoke](kernel/ioservice/3753472-coreanalyticssendevent_invoke.md)
- [CreateDefaultDispatchQueue_Invoke](kernel/ioservice/3753475-createdefaultdispatchqueue_invok.md)
- [CreateKernelClassMatchingDictionary](driverkit/ioservice/createkernelclassmatchingdictionary-9b28.md)
- [CreateKernelClassMatchingDictionary](driverkit/ioservice/createkernelclassmatchingdictionary-3uqly.md)
- [CreateNameMatchingDictionary](driverkit/ioservice/createnamematchingdictionary-2nzta.md)
- [CreateNameMatchingDictionary](driverkit/ioservice/createnamematchingdictionary-206ej.md)
- [CreatePropertyMatchingDictionary](driverkit/ioservice/createpropertymatchingdictionary-4tuca.md)
- [CreatePropertyMatchingDictionary](driverkit/ioservice/createpropertymatchingdictionary-6o4ss.md)
- [CreateUserClassMatchingDictionary](driverkit/ioservice/createuserclassmatchingdictionary-4gpbj.md)
- [CreateUserClassMatchingDictionary](driverkit/ioservice/createuserclassmatchingdictionary-60ptx.md)
- [Create_Invoke](kernel/ioservice/3325790-create_invoke.md)
- [GetBusyState_Invoke](kernel/ioservice/3753478-getbusystate_invoke.md)
- [GetRegistryEntryID_Invoke](kernel/ioservice/3075041-getregistryentryid_invoke.md)
- [JoinPMTree_Invoke](kernel/ioservice/4061665-joinpmtree_invoke.md)
- [NewUserClient_Invoke](kernel/ioservice/3325793-newuserclient_invoke.md)
- [RegisterService_Invoke](kernel/ioservice/3075045-registerservice_invoke.md)
- [RemoveProperty_Invoke](kernel/ioservice/3753482-removeproperty_invoke.md)
- [RequireMaxBusStall_Invoke](kernel/ioservice/3689551-requiremaxbusstall_invoke.md)
- [SearchProperty_Invoke](kernel/ioservice/3325796-searchproperty_invoke.md)
- [SendIOMessageServicePropertyChange_Invoke](kernel/ioservice/3943384-sendiomessageservicepropertychan.md)
- [SetLegend_Invoke](kernel/ioservice/3753485-setlegend_invoke.md)
- [SetName_Invoke](kernel/ioservice/3325799-setname_invoke.md)
- [SetPowerOverride_Invoke](kernel/ioservice/4485637-setpoweroverride_invoke.md)
- [SetPowerState_Invoke](kernel/ioservice/3152491-setpowerstate_invoke.md)
- [SetProperties_Invoke](kernel/ioservice/3075049-setproperties_invoke.md)
- [Start_Invoke](kernel/ioservice/3075052-start_invoke.md)
- [StateNotificationItemCopy_Invoke](kernel/ioservice/3753488-statenotificationitemcopy_invoke.md)
- [StateNotificationItemCreate_Invoke](kernel/ioservice/3753491-statenotificationitemcreate_invo.md)
- [StateNotificationItemSet_Invoke](kernel/ioservice/3753494-statenotificationitemset_invoke.md)
- [Stop_Invoke](kernel/ioservice/3075055-stop_invoke.md)
- [Stop_async_Invoke](kernel/ioservice/3684896-stop_async_invoke.md)
- [StringFromReturn_Invoke](kernel/ioservice/3753497-stringfromreturn_invoke.md)
- [Terminate_Invoke](kernel/ioservice/3538572-terminate_invoke.md)
- [UpdateReport_Invoke](kernel/ioservice/3753500-updatereport_invoke.md)
- [UserSetProperties_Invoke](kernel/ioservice/3753503-usersetproperties_invoke.md)
- [actionDidStop](kernel/ioservice/1532805-actiondidstop.md)
- [actionDidTerminate](kernel/ioservice/1532611-actiondidterminate.md)
- [actionFinalize](kernel/ioservice/1532875-actionfinalize.md)
- [actionStop](kernel/ioservice/1532839-actionstop.md)
- [actionWillStop](kernel/ioservice/1532676-actionwillstop.md)
- [actionWillTerminate](kernel/ioservice/1532651-actionwillterminate.md)
- [addLocation](kernel/ioservice/1532786-addlocation.md)
- [addMatchingNotification](kernel/ioservice/1532878-addmatchingnotification.md)
- [addMatchingNotification](kernel/ioservice/3516482-addmatchingnotification.md)
- [addNotification](kernel/ioservice/1532881-addnotification.md)
- [copyExistingServices](kernel/ioservice/1532695-copyexistingservices.md)
- [copyMatchingService](kernel/ioservice/1532874-copymatchingservice.md)
- [doInstallNotification](kernel/ioservice/1532603-doinstallnotification.md)
- [getMatchingServices](kernel/ioservice/1532708-getmatchingservices.md)
- [getPMRootDomain](kernel/ioservice/1532815-getpmrootdomain.md)
- [getPlatform](kernel/ioservice/1532696-getplatform.md)
- [getResourceService](kernel/ioservice/1532617-getresourceservice.md)
- [getServiceRoot](kernel/ioservice/1532741-getserviceroot.md)
- [getSystemStateNotificationService](kernel/ioservice/3753504-getsystemstatenotificationservic.md)
- [instanceMatch](kernel/ioservice/1532586-instancematch.md)
- [nameMatching](kernel/ioservice/1532678-namematching.md)
- [nameMatching](kernel/ioservice/3516486-namematching.md)
- [propertyMatching](kernel/ioservice/1532859-propertymatching.md)
- [publishHiddenMedia](kernel/ioservice/3857676-publishhiddenmedia.md)
- [publishHiddenMediaApplier](kernel/ioservice/3857677-publishhiddenmediaapplier.md)
- [publishResource](kernel/ioservice/1532848-publishresource.md)
- [publishResource](kernel/ioservice/3516488-publishresource.md)
- [publishUserResource](kernel/ioservice/3192003-publishuserresource.md)
- [registryEntryIDMatching](kernel/ioservice/1532608-registryentryidmatching.md)
- [resourceMatching](kernel/ioservice/1532747-resourcematching.md)
- [resourceMatching](kernel/ioservice/3516490-resourcematching.md)
- [serviceMatching](kernel/ioservice/1532788-servicematching.md)
- [serviceMatching](kernel/ioservice/3516491-servicematching.md)
- [setNotification](kernel/ioservice/1532577-setnotification.md)
- [setRootMedia](kernel/ioservice/3857678-setrootmedia.md)
- [syncNotificationHandler](kernel/ioservice/1532755-syncnotificationhandler.md)
- [terminateThread](kernel/ioservice/1532810-terminatethread.md)
- [terminateWorker](kernel/ioservice/1532833-terminateworker.md)
- [userServerCheckInTokenCancellationHandler](kernel/ioservice/3786074-userservercheckintokencancellati.md)
- [waitForMatchingService](kernel/ioservice/1532633-waitformatchingservice.md)
- [waitForService](kernel/ioservice/1532827-waitforservice.md)
- [waitToBecomeTerminateThread](kernel/ioservice/2935674-waittobecometerminatethread.md)

## Relationships

### Inherits From

- [IORegistryEntry](kernel/ioregistryentry.md)

## See Also

### Driver Services

- [IOPlatformIO](kernel/ioplatformio.md)
