Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

since I am curious person, a searched for information about USB, mainly how to be able to use USB in your own projects.

I came to LibUSB, which is a library and driver that enables you to do so. But it made me a bit confused.

I expected that Windows has a default USB kernel driver, which administers all USB functionality. And if you would want, for example, to send data to some endpoint, you would just call some winAPI function, and send it the PID VID pair of the device and information about what data to send and to what enpoint.

But after looking a bit deeper into LibUSB, it has another driver you have to install first. So, from my beginner point of view you have 2 drivers now, one USB HW driver, and one driver for LibUSB. So, my question is why do you need the second driver? Thanks.

share|improve this question

1 Answer 1

up vote 2 down vote accepted

The USB bus is not like PCI buses; USB controllers are not directly accessed but accessed through the PCI bus. Thus, the USB controller itself needs a driver, and you need a software stack to manage all those layers (hardware <-> PCI bus <-> USB controller(as PCI device) <-> USB bus <-> USB device <-> application)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.