There may be times when you choose to write your driver directly, without using DriverWizard. In such cases, either follow the steps outlined in this section to create a new driver project, or use one of the WinDriver samples, which most closely resembles your target driver, and modify the sample to suit your specific requirements.
Include the relevant WinDriver header files in your driver project (all header
files are found under the WinDriver/include/
directory).
All WinDriver projects require the windrvr.h
header file.
When using the WDU_xxx WinDriver USB API [B.2], include the
wdu_lib.h header file (this file already
includes windrvr.h).
Include any other header file that provides APIs that you wish to use from your code (e.g. files from the WinDriver/samples/shared/ directory, which provide convenient diagnostics functions.)
#include "wdu_lib.h"
You can also include the library's source files in your project instead of linking the project with the library. The C source files are located under the WinDriver/src/wdapi directory.
Note: When linking your project with the
wdapi1011 library/shared object,
you will need to distribute the
wdapi1011 DLL/shared object with
your driver.
For Windows, get wdapi1011.dll /
wdapi1011_32.dll (for 32-bit
applications targeted at 64-bit platforms) from the WinDriver\redist
directory.
For Linux, get
libwdapi1011.so /
libwdapi1011_32.so (for 32-bit
applications targeted at 64-bit platforms) from the
WinDriver/lib/ directory.
Note: When using the DLL/shared object file for 32-bit applications on
64-bit platforms (wdapi1011_32.dll
/ libwdapi1011_32.so), rename the
copy of the file in the distribution package, by removing the
_32 portion [A.2].
For detailed distribution instructions, see Chapter 11.
WDU_Init [B.4.1] at the beginning
of your program to initialize WinDriver for your USB device and wait for the
device-attach callback. The relevant device information will be provided in
the attach callback.
WDU_Transfer [B.4.8.1] functions
family to send and receive data.
WDU_Uninit [B.4.7] to
un-register from the device.