Usually this may be realized either directly interacting with the driver (e.g. by device specific system calls or IOCTLs), or mediated by standard library routines or even, as a last resort, just leveraging ready-made lowlevel platform-specific tools for the device under consideration.