An alternative solution for the existing drivers
It is not always possible to modify the source of an existing driver. The common problem is a closed source driver. In this case, you can link only against a library but you do not have the source.
The solution is to move the access to this driver to a separate thread or process. You must then create a communication channel between your application and this separate thread or process using the functions provided by vibe.d. The advantage of this solution is that you do not have to modify the source. The disadvantage is clearly the complexity introduced by the communication between threads and processes.