Хороший способ понять, почему это практически невозможно, - прочитать совет Microsoft по использованию C ++ в драйверах. Как производная от C, использование C ++ кажется простым. На практике это не так.
Например, вы должны решить для каждой функции (и в действительности для каждой инструкции по сборке), находится ли она в страничной или нестраничной памяти. Это требует расширения C, тщательного использования новых функций C ++ или, в этом случае, специального расширения языка Python и VM. Кроме того, вашей совместимой с драйвером виртуальной машине также придется иметь дело с различными IRQL - существует иерархия «уровней», которые ограничивают то, что вы можете и не можете делать.