Chapter 5  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 ( PLX 6466, 9030, 9050, 9052, 9054, 9056, 9080 and 9656; Altera pci_dev_kit; Xilinx VirtexII and Virtex 5; AMCC S5933 ), read the following overview and then skip straight to Chapter 7.

5.1  Using the DriverWizard to Build a Device Driver

  • Use DriverWizard to diagnose your card: Read/write the I/O and memory ranges, view the PCI configuration registers information, define registers for your card and read/write the registers, and listen to interrupts.
  • 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 4.
  • If you are using one of the specific chipsets for which WinDriver offers enhanced support ( PLX 6466, 9030, 9050, 9052, 9054, 9056, 9080 and 9656; Altera pci_dev_kit; Xilinx VirtexII and Virtex 5; AMCC S5933 ), 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 7.
  • Use any C / .NET / Delphi / Visual Basic compiler (such as MSDEV/Visual C/C++, MSDEV .NET, Borland C++ Builder, Borland Delphi, Visual Basic 6.0, MS eMbedded Visual C++, MS Platform Builder C++, GCC, etc.) 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. If you discover that better performance is needed, please refer to Chapter 10 for details on performance improvement.

Please see Appendix B for a detailed description of WinDriver's PCI/ISA/CardBus API.

To learn how to perform operations that DriverWizard cannot automate, refer to Chapter 9 of the manual.