Thread-topic: Problem with shutting down user clients
Title: Problem with shutting down user clients
I have a driver in development for a multiport PCIe HBA. I have a custom logging application that communicates with one user-client instance for each port.
When I invoke kextunload for my driver, my logging application detects a handshake error with one of its user-client instances and attempts to close all user-client connections (assuming that the driver is probably being unloaded). The CloseUserClient() call for the last user client to be terminated, consistently returns a result of 0x10000003. I haven't been able to find any reference that explains what this result code means. Retrying the failed CloseUserClient() call doesn't seem to help. CloseUserClient() calls for all user-client instances except the last have no problem. As an experiment, I reversed the order in which I tried to close the instances, and it was still the last one I tried to close that failed.
kextunload fails, saying that there are outstanding instances for the user client and the driver. When I check, I find one user-client instance and all of the driver instances. I assume that the failure to unload the last user-client instance prevented unloading of any of the driver instances.
I have not completely characterized the problem at this point, but I'm making this early post in the hope the information I have will ring a bell with somebody and that I won't need to analyze further.
Thanks for any ideas,
Do not post admin requests to the list. They will be ignored.
Darwin-drivers mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden