Userclient Exclusivity Under DriverKit

We have run userclients under the KEXT umbrella for two decades now.

We have guaranteed access to a single user client at a time internally with explicit userclient open and close external methods and an 'opened' state variable maintained in the driver itself.

In the event that a client failed to close it's connection, because of a logic fault or crash, the exclusion variable would be cleared when the clientDied method was called.

In the land of the DEXT, the userclient is no longer explicitly associated with a particular task nor is there a standard clientDied type notification.

Is there any implicit guarantee of exclusive access to the driver through the userclient that we do not make our selves? In other words, if I had several suitably entitled client apps, could they potentially interleave their accesses in concurrent sessions so as to interfere?

If I find it necessary to prevent concurrent access, is there any guarantee that open IOService connections to userclients will be closed if the app terminates sloppily or unexpectedly?

Thanks, John Brisbin

Userclient Exclusivity Under DriverKit
 
 
Q