IOServiceOpen(_:_:_:_:)
A request to create a connection to an IOService.
Declaration
func IOServiceOpen(_ service: io_service_t, _ owningTask: task_port_t, _ type: UInt32, _ connect: UnsafeMutablePointer<io_connect_t>!) -> kern_return_tParameters
- service:
The IOService object to open a connection to, usually obtained via the IOServiceGetMatchingServices or IOServiceAddNotification APIs.
- owningTask:
The mach task requesting the connection.
- type:
A constant specifying the type of connection to be created, interpreted only by the IOService's family.
- connect:
An io_connect_t handle is returned on success, to be used with the IOConnectXXX APIs. It should be destroyed with IOServiceClose().
Return Value
A return code generated by IOService::newUserClient.
Discussion
A non kernel client may request a connection be opened via the IOServiceOpen() library function, which will call IOService::newUserClient in the kernel. The rules & capabilities of user level clients are family dependent, the default IOService implementation returns kIOReturnUnsupported.
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(_:_:)IOServiceGetMatchingServices(_:_:_:)IOServiceMatching(_:)IOServiceMatchPropertyTable(_:_:_:)IOServiceNameMatching(_:)IOServiceRequestProbe(_:_:)IOServiceWaitQuiet(_:_:)