У С++ нет никаких ограничений по разработке драйверов, но как дань традиции из тех времен когда компиляторов С++ практически не существовало - пишут на С, хотя драйвера можно реализовать и на С++. Плюс при написании драйверов зачастую не используют библиотеки или используют свои специальные.
Причина -- драйвера часто работают в особом режиме с особой памятью,
там код CRT часто не подходит (проблемы многопоточности, инициализации,
повторновходовости и т.п.). А так как С, на порядок легче С++ в реализации стандартных функций отсюда и выбор языка для программирования драйверов