На своих платах поступал аналогично, и работает тоже вроде везде. Для устройств, с небогатыми ресурсами плисины и не критичных к ошибкам, такое решение наверно приемлимо. Но как быть, если контроль нужен?
При чтении из устройства ошибка фиксируется задатчиком обмена (мастером то бишь). При этом для того, чтобы узнать об ошибке необходимо знать и у кого и как спрашивать. Во-вторых, неизбежно придется терять время на эти опросы. Думаю самостоятельное решение этих проблем не есть правильный путь. Логичнее было бы узнать от Винды об ошибке по событию, исключению, прерыванию .. Но вот как договориться с ОС на сей счет?