Chapter 6. Developing a Driver

This chapter takes you through the WinDriver driver development cycle.

[Note]
If your device is based on one of the chipsets for which WinDriver provides enhanced support (The Cypress EZ-USB family; Microchip PIC18F4550; Philips PDIUSBD12; Texas Instruments TUSB3410, TUSB3210, TUSB2136 and TUSB5052; Agere USS2828; Silicon Laboratories C8051F320), read the following overview and then skip straight to Chapter 8.

6.1  Using DriverWizard to Build a Device Driver

  • Use DriverWizard to diagnose your device: View the device's configuration information, transfer data on the device's pipes, send standard requests to the control pipe and reset the pipes. Verify that your device operates as expected.
  • Use DriverWizard to generate skeletal code for your device in C, C#, Visual Basic .NET, Delphi or Visual Basic. For more information about DriverWizard, refer to Chapter 5.
  • If you are using one of the specific chipsets for which WinDriver offers enhanced support (The Cypress EZ-USB family; Microchip PIC18F4550; Philips PDIUSBD12; Texas Instruments TUSB3410, TUSB3210, TUSB2136 and TUSB5052; Agere USS2828; Silicon Laboratories C8051F320), we recommend that you use the specific sample code provided for your chip as your skeletal driver code. For more details regarding WinDriver's enhanced support for specific chipsets, refer to Chapter 8.
  • Use any C / .NET / Delphi / Visual Basic compiler/IDE (such as MS Visual Studio, Borland C++ Builder, Borland Delphi, Visual Basic 6.0, MS eMbedded Visual C++, MS Platform Builder C++, GCC) to compile the skeletal driver you need.
  • For Linux, use any compilation environment, preferably GCC, to build your code.
  • That is all you need to do in order to create your user-mode driver.

Please see Appendix B for a detailed description of WinDriver's USB API.
For more information regarding implementation of USB transfers with WinDriver, refer to Chapter 9 of the manual.