lugal прав: прерывания можно обрабатывать только в Ring 0.
А к COM и USB HID можно обращаться через стандартные драйвера при помощи вызова CreateFile().
Ну вот и я ж о чем - в подавляющем большинстве случаев лезть в Ring 0 нет никакой нужды - достаточно возможностей стандартного Win API, который можно использовать практически из любого языка программирования. Какое это отношение имеет к C++ - см. ниже
Я вот только не возьму в толк, причём здесь "низкоуровневое" обращение к железу?
Ранее в этой ветке было сказано следующее:
Вопрос был о С++. Следовательно, человек будет заниматься достаточно низкоуровневым программированием.
Или ты считаешь иначе?
Так что все самые застарелые задачи будут актуальными и для этого человека.
Ну, представь себе коммерческий проект с основой на С++ без низкоуровнеого кодирования!
Если ты смог это представить - значит, твоя квалификация желает быть лучшей.
С выделенными красным фразами я категорически не согласен и считаю, что
именно на PC-платформе, подавляющее большинство задач на уровне ядра ОС и драйверов уже давно решены, поэтому если уж C++ и выбирается в качестве основного языка, то явно не по этой причине.
Справедливости ради, с микроконтроллерными системами ситуация тоже интересная - C и даже ассемблер используются в полный рост. А вот именно C++, насколько я знаю, эмбеддеры не очень жалуют.
Кстати о мыши. Ловить события мыши, которая работает на все том же допотопном контроллере, что и в DOSовские времена, только с несущественными добавками - такая же актуальная задача сейчас для кодера на низком уровне, как и раньше. Только системный API несколько другой.
А ничего, что PS/2 (и тем более COM) мышь сейчас еще поискать надо?
Это про "допотопный контроллер"...
Ну и если обработку событий мыши считать низкоуровневой задачей... то я молчу
Hint: В Windows 10 лет назад это прекрасно можно было делать на Visual Basic 6, да и на Delphi тоже, насколько я помню.