Did you like how we did? Rate your experience!

4.5

satisfied

46 votes

Can application software communicate with the device driver?

Indirectly, yes. Directly, maybe. Applications typically communicate with device drivers through operating system calls, or through libraries/frameworks that make system calls. For example, if an application wants to read data from a device, it makes a call to the operating system (or library function that calls that operating system) to perform the operation. The OS manages a data structure of I/O requests, and passes the request along to the device driver. In some operating system environments, a system call is provided to allow direct communication with device driver (e.g., DeviceIoControl), sending a control code directly to the driver, which the driver then carries out. But the OS still acts as an intermediary, providing the system call and perhaps queuing the request for the driver to process. In some cases, a specialized API (application programming interface) is provided to allow an application to communicate directly with a device driver. For example, DirectX API functions can be used to make requests to devices that have a DirectX-compatible driver. In some operating systems, or in systems that have no operating system at all, its possible for the application to communicate directly with the device driver, or even manipulate the hardware directly. For example, MS-DOS, although it provided a set of system calls, allowed any application to have direct access to drivers or hardware devices.

100%
Loading, please wait...