Ну, драйвер это прослойка между устройством и ОС. Когда ты пишешь программу без SDK драйвера (библиотеки и заголовочные файлы) ты ограничен тем, что тебе позволили разработчики. Например, они дали тебе две команды "считать байт" и "записать байт". Ты в программе открываешь COM порт и можешь лишь использовать эти две команды с параметрами (типа, "записать байт FF"). При использовании же стороннего, открытого драйвера ты можешь отправлять любые команды, которые поддерживаются самой м/с конвертера. И иметь полный контроль над оной. Это даёт большую свободу и возможность управлять процессом так, как хочется тебе (насколько оно реализовано в драйвере), а не в ограниченной производителем "песочнице". Что позволяет использовать устройство не совсем так, как задумано производителем. Например, шить ПЛИС тем, что не является прошивальщиком ПЛИС.