Writing device drivers can be a tricky task. Simply getting a piece of hardware to operate as desired – perhaps working from erroneous or nonexistent documentation – can be a frustrating process.