Driver development plays a crucial part in today’s IT systems. A small error in a driver could lead to the loss of high amounts of sensitive data. The goal of this thesis is to introduce the reader to the process of driver development through an example of a USB thermometer.

This document follows the order of the development tasks, alternating between the computer and the hardware. The first chapter describes different driver development APIs and frameworks, followed by some useful development tools. This is followed by the actual implementation: first the basic driver and the configuration of the hardware, then the implementation of the USB standard, and finally an API to wrap the driver. After the programming interface is complete, I demonstrate the functions of the hardware, as well as the usability of the API with a simple test application.

My work also includes a detailed description of various driver development frameworks and models, the USB standard, and the Windows Driver Model, the chosen model for the development.

During the implementation the target platform was the 32-bit variant of Windows 7, although a few basic tests revealed that all components are compatible both with the 64-bit architecture, and the newer versions of Microsoft Windows (8.0 & 8.1).