Драйверы устройств для операционных систем настольных компьютеров обычно написаны на C или C ++.Операционная система, на которую вы нацеливаетесь, будет иметь какую-то форму среды разработки или драйвера устройства.Зачастую эти комплекты разработки можно получить бесплатно.
Существуют книги, доступные для Windows, Linux и MacOS X (и другие), в которых подробно описан процесс создания драйвера устройства.
Есливаш драйвер связан с устройством на определенной аппаратной шине (PCI, PCI-X, USB, SCSI, SATA и т. д.), вы также можете получить книги по этой конкретной технологии.Понимание этой аппаратной системы может значительно облегчить проектирование вашего драйвера.
Еще один хороший ресурс - это открытый исходный код, аналогичный вашим устройствам.Вы можете получить это из источника ядра Linux или источника FreeBSD и изучить, как реализованы определенные аспекты устройства вашего типа.
РЕДАКТИРОВАТЬ: Я почти забыл упомянуть, что вам также понадобятся таблицы данных, схемы и /или теория работы информации о самом устройстве.