IOServiceAddInterestNotification(_:_:_:_:_:_:)
Register for notification of state changes in an IOService.
Declaration
func IOServiceAddInterestNotification(_ notifyPort: IONotificationPortRef!, _ service: io_service_t, _ interestType: UnsafePointer<CChar>!, _ callback: IOServiceInterestCallback!, _ refCon: UnsafeMutableRawPointer!, _ notification: UnsafeMutablePointer<io_object_t>!) -> kern_return_tParameters
- notifyPort:
A IONotificationPortRef object that controls how messages will be sent when the notification is fired. See IONotificationPortCreate.
- interestType:
A notification type from IOKitKeys.h
kIOGeneralInterest General state changes delivered via the IOService::message API.
kIOBusyInterest Delivered when the IOService changes its busy state to or from zero. The message argument contains the new busy state causing the notification.
- callback:
A callback function called when the notification fires, with messageType and messageArgument for the state change.
- refCon:
A reference constant for the callbacks use.
- notification:
An object handle is returned on success, and should be released by the caller when the notification is to be destroyed.
Return Value
A kern_return_t error code.
Discussion
IOService objects deliver notifications of their state changes to their clients via the IOService::message API, and to other interested parties including callers of this function. Message type s are defined IOKit/IOMessage.h.
See Also
Miscellaneous
IOBSDNameMatching(_:_:_:)IOConnectAddClient(_:_:)IOConnectAddRef(_:)IOConnectGetService(_:_:)IOConnectMapMemory(_:_:_:_:_:_:)IOConnectMapMemory64(_:_:_:_:_:_:)IOConnectRelease(_:)IOConnectSetCFProperties(_:_:)IOConnectSetCFProperty(_:_:_:)IOConnectSetNotificationPort(_:_:_:_:)IOConnectUnmapMemory(_:_:_:_:)IOConnectUnmapMemory64(_:_:_:_:)IOCreateReceivePort(_:_:)IODispatchCalloutFromMessage(_:_:_:)IOIteratorIsValid(_:)IOIteratorNext(_:)IOIteratorReset(_:)IOKitGetBusyState(_:_:)IOKitWaitQuiet(_:_:)IOMasterPort(_:_:)IONotificationPortCreate(_:)IONotificationPortDestroy(_:)IONotificationPortGetMachPort(_:)IONotificationPortGetRunLoopSource(_:)IONotificationPortSetDispatchQueue(_:_:)IOObjectConformsTo(_:_:)IOObjectCopyBundleIdentifierForClass(_:)IOObjectCopyClass(_:)IOObjectCopySuperclassForClass(_:)IOObjectGetClass(_:_:)IOObjectGetKernelRetainCount(_:)IOObjectGetRetainCount(_:)IOObjectGetUserRetainCount(_:)IOObjectIsEqualTo(_:_:)IOObjectRelease(_:)IOObjectRetain(_:)IORegistryCreateIterator(_:_:_:_:)IORegistryEntryCreateCFProperties(_:_:_:_:)IORegistryEntryCreateCFProperty(_:_:_:_:)IORegistryEntryCreateIterator(_:_:_:_:)IORegistryEntryFromPath(_:_:)IORegistryEntryGetChildEntry(_:_:_:)IORegistryEntryGetChildIterator(_:_:_:)IORegistryEntryGetLocationInPlane(_:_:_:)IORegistryEntryGetName(_:_:)IORegistryEntryGetNameInPlane(_:_:_:)IORegistryEntryGetParentEntry(_:_:_:)IORegistryEntryGetParentIterator(_:_:_:)IORegistryEntryGetPath(_:_:_:)IORegistryEntryGetRegistryEntryID(_:_:)IORegistryEntryIDMatching(_:)IORegistryEntryInPlane(_:_:)IORegistryEntrySearchCFProperty(_:_:_:_:_:)IORegistryEntrySetCFProperties(_:_:)IORegistryEntrySetCFProperty(_:_:_:)IORegistryGetRootEntry(_:)IORegistryIteratorEnterEntry(_:)IORegistryIteratorExitEntry(_:)IOServiceAddMatchingNotification(_:_:_:_:_:_:)IOServiceClose(_:)IOServiceGetBusyState(_:_:)IOServiceGetMatchingService(_:_:)IOServiceGetMatchingServices(_:_:_:)IOServiceMatching(_:)IOServiceMatchPropertyTable(_:_:_:)IOServiceNameMatching(_:)IOServiceOpen(_:_:_:_:)IOServiceRequestProbe(_:_:)IOServiceWaitQuiet(_:_:)