На каком языке пишут драйвера?

Black Fregat, я слабо себе представляю, как вообще устроен принцип работы драйверов под виндами, а потому, как уже говорил, сужу с линуксовой колокольни. Но при написании драйверов, как мне видится, объектно-ориентированный подход не особенно нужен. Хотя Си++ как язык, скорее всего, будет удобнее тем, что в нём есть inline функции или inline методы. Для Си всё это реализуется через макросы, но получается менее удобно (т.е. больше возможности ошибиться и не заметить). Так что к ответу на изначальный вопрос действительно можно добавить "Си++ в ограниченном виде"

polimorf96, "c with classes" это некий условный кастрированный вариант Си++ (а точнее Си++ это более развитый "c with classes"), в котором нет высокоуровневых конструкций, требующих поддержки окружения (new, exceptions и т.п.). Это важное требование, гарантирующее, что в процессе работы компилятор не превратит конструкцию языка в вызов функции, требующей системной библиотеки. Потому как на уровне ядра никаких систменых библиотек нет

0