IOServiceGetMatchingServices(_:_:_:)
Look up registered IOService objects that match a matching dictionary.
Declaration
func IOServiceGetMatchingServices(_ mainPort: mach_port_t, _ matching: CFDictionary!, _ existing: UnsafeMutablePointer<io_iterator_t>!) -> kern_return_tParameters
- masterPort:
The primary port obtained from 1514652 Iomasterport. Pass Kiomasterportdefault to look up the default primary port.
- matching:
A CF dictionary containing matching information, of which one reference is always consumed by this function (Note prior to the Tiger release there was a small chance that the dictionary might not be released if there was an error attempting to serialize the dictionary). IOKitLib can construct matching dictionaries for common criteria with helper functions such as IOServiceMatching, IOServiceNameMatching, IOBSDNameMatching.
- existing:
An iterator handle is returned on success, and should be released by the caller when the iteration is finished.
Return Value
A kern_return_t error code.
Discussion
This is the preferred method of finding IOService objects currently registered by IOKit (that is, objects that have had their registerService() methods invoked). To find IOService objects that aren't yet registered, use an iterator as created by IORegistryEntryCreateIterator(). IOServiceAddMatchingNotification can also supply this information and install a notification of new IOServices. The matching information used in the matching dictionary may vary depending on the class of service being looked up.
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(_:)IOServiceAddInterestNotification(_:_:_:_:_:_:)IOServiceAddMatchingNotification(_:_:_:_:_:_:)IOServiceClose(_:)IOServiceGetBusyState(_:_:)IOServiceGetMatchingService(_:_:)IOServiceMatching(_:)IOServiceMatchPropertyTable(_:_:_:)IOServiceNameMatching(_:)IOServiceOpen(_:_:_:_:)IOServiceRequestProbe(_:_:)IOServiceWaitQuiet(_:_:)