Про ожидание BUSY:
Что касается прерываний: ничего из сказанного не понял. Могупри можно, конечно, таймаут ввести, но это неоправдано. без прерываний нормальную обработку через драйвер, без проблем с многозадачностью всё равно сделать нельзя, чтобы не вносить кучу кода в программу (тогда высокоуровневый драйвер не нужен)
только сказать, что прерываний для создания интерактивных
программ с разумно-минимальным временем реакции не нужно.
Достаточно таймера. Нет, в спектруме я понимаю -- прерывания
исполняют роль таймера. Больше ничего не нужно. И не спорь.
Абсолютно любой алгоритм с циклами разбирается до уровня
конечных автоматов, где есть один единственный цикл на всю
программу. Прерывания нужны только там где время реакции
критично. В данном случае -- не критично.
Что касается "высокоуровневого драйвера" -- вы уже определились,
драйвер чего конкретно вы пишете? У меня вот драйвер
самой платы контроллера, например "Немо-IDE". А у вас никто
не знает что это и каковы его функции. Отсюда и остальной бардак.
Микрософт предложил свой вариант: генерацию псевдослучайныхтут проблемы с централизованной регистрацией интерфейсов (реестро-то нету)
UUID'ов. Лично мне не нравится. Но тоже -- решение.