Creates a CFMachPort object for a pre-existing native Mach port.
SDKs
- iOS 2.0+
- macOS 10.0+
- Mac Catalyst 13.0+
- tvOS 9.0+
- watchOS 2.0+
Framework
- Core Foundation
Declaration
CFMach Port Ref CFMachPortCreateWithPort(CFAllocator Ref allocator, mach _port _t portNum, CFMach Port Call Back callout, CFMach Port Context *context, Boolean *shouldFreeInfo);
Parameters
allocator
The allocator to use to allocate memory for the new object. Pass
NULL
ork
to use the current default allocator.CFAllocator Default portNum
The native Mach port to use.
callout
The callback function invoked when a message is received on the Mach port.
context
A structure holding contextual information for the Mach port. The function copies the information out of the structure, so the memory pointed to by
context
does not need to persist beyond the function call.shouldFreeInfo
A flag set by the function to indicate whether the
info
member ofcontext
should be freed. The flag is set totrue
on failure or if a CFMachPort object already exists forport
,Num false
otherwise.should
can beFree Info NULL
.
Return Value
The new CFMachPort object or NULL
on failure. If a CFMachPort object already exists for port
, the function returns the pre-existing object instead of creating a new object; the context
and callout
parameters are ignored in this case. Ownership follows the The Create Rule.
Discussion
The CFMachPort object does not take full ownership of the send and receive rights of the Mach port port
. It is the caller’s responsibility to deallocate the Mach port rights after the CFMachPort object is no longer needed and has been invalidated.