Chapter 2. WD_xxx PCI/ISA Functions

This chapter describes the basic WD_xxx() PCI/ISA WinDriver functions.

2.1. API Calling Sequence — PCI/ISA

Figure 2.1 demonstrates typical calling sequences using the basic WinDriver WD_xxx() PCI/ISA functions.

  1. Memory addresses can be accessed directly, using the user-mode mapping of the address returned by WD_CardRegister() [2.6] (or the kernel mapping, when accessing memory from the Kernel PlugIn). Direct memory access is more efficient than using WD_Transfer() [2.9].
  2. It is possible (although not recommended) to replace the use of the high-level InterruptEnable() convenience function [2.17] with the low-level WD_IntEnable() [3.2], WD_IntWait() [3.3] and WD_IntCount() [3.4] functions, and replace the call to InterruptDisable() [2.18] with a call to the low-level WD_IntDisable() function [3.5].
    For more information on the low-level WinDriver interrupt handling API, refer to Chapter 3 of the manual.
  3. WinDriver's general-use APIs, such as WD_DebugAdd() [5.6] or WD_Sleep() [5.8], can be called anywhere between the calls to WD_Open() and WD_Close(). For more details, refer to Chapter 5.

Figure 2.1. WinDriver PCI/ISA Calling Sequence

WinDriver PCI/ISA Calling Sequence