introduce write functionality

* fix and check return values
* initialize rc_driver struct
* execute driver functions only if available
* process parameter only if available