Nearly all drivers will need to expose their services to applications run by the user.
To allow applications to interact with a kernel driver, the driver needs to cross the barrier that exists between user space code and kernel code. A driver written using the I/O Kit framework achieves this by implementing a class that derives from the IOUserClient class.
Applications can iterate loaded kernel drivers or can install a callback function to receive notifications when drivers are loaded and unloaded.
The I/O Kit provides several functions that allow a user application to request services provided by a driver, including by reading and writing driver properties, or by establishing a connection to the driver and sending control requests to ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.