Это очень хороший вопрос. Но я бы начал с другого. Сначала, нужно понять, что такое драйвер вообще. Допустим, мы будем считать, что драйвер это некоторое программное обеспечение, которое позволяет соединить между собой систему и некоторую аппаратную часть (принтер, сканер и т. д.). Теперь дальше. Для чего вы хотите написать драйвер?