| DRV232: Windows Drivers for USB Devices |
This seminar covers the specifics of functional drivers for devices on the USB bus. Level Intermediate Audience Developers who write or maintain drivers for devices attached to the USB bus; firmware developers for USB devices; and hardware engineers responsible for USB devices. Description This course begins with the theory of operation of the Universal Serial Bus. Drivers for devices attached to the USB are termed function drivers, because they control a USB functional device. USB is a protocol-based bus, and a Windows component called a bus driver – specifically, the USB host controller driver – is responsible for arbitrating access to the bus, as well as sending and receiving packets; the function driver does not communicate with hardware directly, but instead asks the bus driver to do so on its behalf. This involves messaging mechanisms that will be new to most driver writers. This seminar focuses on those mechanisms.
This seminar is intended as a follow-on to DRV201, Core WDM Device Drivers. This seminar does not cover the details of WDM driver architecture, plug-and-play, power management, etc., addressed in DRV201. Although DRV201 does use a USB device as an example, it does not address all of the details of the USB interfaces presented here. Topics Universal Serial Bus design and concepts USB device endpoints and transfer types Bus drivers Communicating with the bus driver Send and receiving requests from the bus driver
Prerequisites DRV201, Core WDM Device Drivers, or equivalent knowledge and experience writing WDM device drivers. Windows versions Windows Server 2003, Windows XP, Windows 2000 Duration and formats 2 days with labs 1 day lecture only Labs We strongly recommend the hands-on labs version of this seminar, as this allows the student to immediately apply and thereby reinforce what has been learned. The lab assignments are broken into a series of exercises interspersed with the lecture. Each lab exercise starts with a complete solution to the previous exercise. At the conclusion of the seminar, each student will of course receive fully commented source code for the solutions to all of the lab exercises. |