What is the purpose of FTDI’s D3XX Windows kernel-mode driver?

  ftdi, windows, winusb

FT60x are SuperSpeed USB3.0 to FIFO bridges from FTDI manufacturer. The driver’s architecture, as stated in AN_379D3XX Programmers Guide consists of a DLL (FTD3XX.DLL / FTD3XX.LIB) and a kernel-mode driver (FTDIBUS3.SYS). Both the DLL and the SYS file are closed source as a company policy, and, for obvious reasons, part of the Windows driver distribution. On the other hand, there’s the Linux driver. That driver consists only of an userspace library (libftd3xx.so) based on libusb (see the README.pdf in the linux driver distribution); that is, there ‘s no kernel driver. In this case, the library uses a propietary protocol on top of USB to talk to the "USB 3.0 Protocol Controller" on the chip as stated in the datasheet

The USB 3.0 Protocol Controller manages the data stream from
the device USB control endpoint. It handles theUSB protocol
requests generated by the USB host controller and the
commands for controlling the functional parameters of the FIFO in
accordance with the USB 3.0 specification.

Then, why the Windows FTDIBUS3.SYS driver? Why not just talk to the USB device as normal, with the proprietary user space library, as in Linux?

Source: Windows Questions

LEAVE A COMMENT