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 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.
    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.

1.9.3. Samples

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).