1.9  What Does the WinDriver Toolkit Include?

1.9.1  WinDriver Modules

  • WinDriver (WinDriver/include) – the general purpose hardware access toolkit. The main files here are:
    • windrvr.h: Declarations and definitions of WinDriver's basic API.
    • wdu_lib.h: Declarations and definitions of the WinDriver USB (WDU) library, which provides convenient wrapper USB APIs.
    • windrvr_int_thread.h: Declarations of convenient wrapper functions to simplify interrupt handling.
    • windrvr_events.h: Declarations of APIs for handling and Plug-and-Play and power management events.
    • utils.h: Declarations of general utility functions.
    • status_strings.h: Declarations of API for converting WinDriver status codes to descriptive error strings.
  • DriverWizard (WinDriver/wizard/wdwizard) – a graphical application that diagnoses your hardware and enables you to easily generate code for your driver (refer to Chapter 5 for details).
  • Debug Monitor – a debugging tool that collects information about your driver as it runs. This tool is available both as a fully graphical application – WinDriver/util/wddebug_gui – and as a console-mode application – WinDriver/util/wddebug. The console-mode version also supports GUI execution on Windows CE platforms that don't have a command-line prompt.
    For details regarding the Debug Monitor, refer to section 7.2.
  • WinDriver distribution package (WinDriver/redist) – the files you include in the driver distribution to customers.
  • This manual – the full WinDriver manual (this document), in different formats, can be found under the WinDriver/docs directory.

1.9.2  Utilities

  • usb_diag.exe (WinDriver/util/usb_diag.exe) – enables the user to view the resources of connected USB devices and communicate with the devices – transfer data to/from the device, set the active alternate setting, reset pipes, etc.
    On Windows the program identifies all devices that have been registered to work with WinDriver using an INF file. On the other supported operating systems the program identifies all USB devices connected to the target platform.
  • pci_dump.exe (WinDriver/util/pci_dump.exe) – used to obtain a dump of the PCI configuration registers of the installed PCI cards.
  • pci_scan.exe (WinDriver/util/pci_scan.exe) – used to obtain a list of the PCI cards installed and the resources allocated for each card.
  • pcmcia_diag.exe (WinDriver/util/pcmcia_diag.exe) – used for reading/writing PCMCIA attribute space, accessing PCMCIA I/O and memory ranges and handling PCMCIA interrupts.
  • pcmcia_scan.exe (WinDriver/util/pcmcia_scan.exe) – used to obtain a list of the PCMCIA cards installed and the resources allocated for each card.

1.9.3  WinDriver's Specific Chipset Support

WinDriver provides custom wrapper APIs and sample code for major USB chipsets (see Chapter 8), including for the following chipsets:

  • Cypress EZ-USB – WinDriver/cypress
  • Microchip PIC18F4550 – WinDriver/microchip/pic18f4550
  • Philips PDIUSBD12 – WinDriver/pdiusbd12
  • Texas Instruments TUSB3410, TUSB3210, TUSB2136 and TUSB5052 – WinDriver/ti
  • Agere USS2828 – WinDriver/agere.
  • Silicon Laboratories C8051F320 USB – WinDriver/silabs

1.9.4  Samples

In addition to the samples provided for specific chipsets [1.9.3], WinDriver includes a variety of samples that demonstrate how to use WinDriver's API to communicate with your device and perform various driver tasks.

  • C samples: found under the WinDriver/samples directory.
    These samples also include the source code for the utilities listed above [1.9.2].
  • .NET C# and Visual Basic .NET samples (Windows): found under the WinDriver\csharp.net and WinDriver\vb.net directories (respectively).
  • Delphi (Pascal) samples (Windows) WinDriver\delphi\samples directory.
  • Visual Basic samples (Windows): found under the WinDriver\vb\samples directory.