Yes. WinDriver can be used to develop .NET Windows drivers in your preferred .NET development language.

The WinDriver .NET API DLLwdapi<version>_dotnet.dll (e.g.,wdapi800_dotnet.dll in WinDriver v8.0.0) provides a .NET version of the high-level WinDriver APIs, implemented using managed extensions for C++. This DLL is found under the WinDriver\lib\<CPU>\<.NET version> directory (e.g., WinDriver\lib\x86\v1.1.4322) and its source code is found under the relevant WinDriver\src\ directory.

v7.0.x Note: In v8.0.0 of WinDriver we added both versioning and 64-bit support to the DLL, which resulted in a different DLL name and new locations for the related files. In versions 7.0.1 and 7.0.2 of WinDriver the name of the DLL was wdapi_dotnet and it could be found both under the WinDriver\lib and WinDriver\redist directories. The DLL source code in these versions was found under the WinDriver\ directory.

Beginning with v8.0.0 of WinDriver you can use WinDriver’s DriverWizard utility to generate driver code in C# (USB and PCI) and VB.NET (USB).

WinDriver also includes .NET samples that use the WinDriver .NET API DLL:

  • USB:
    • The WinDriver\\usb_sample directory contains a .NET USB library (usb_lib_dotnet.dll) and a sample USB diagnostics application (csharp_usb_sample.exe), both implemented in C#.
    • The WinDriver\\usb_sample directory contains a sample .NET USB diagnostics application (vb_usb_sample.exe), implemented in VB.NET. This sample is similar to the sample C# USB diagnostics application and also uses the sample C# USB library (usb_lib_dotnet.dll).
  • PCI:
      • The WinDriver\\pci_sample directory contains a .NET PCI library (pci_lib.dll) and a sample PCI diagnostics application (pci_sample.exe), both implemented in C#.
      • The WinDriver\plx\dotnet directory contains a C# library (plx_lib_dotnet.dll) and sample diagnostics application (PLX_Sample.exe), designed specifically for handling PLXdevices.

To develop a .NET driver with WinDriver, either use DriverWizard to generate a diagnostics .NET driver application for your device, or use the WinDriver .NET sample that most matches your design, and then modify the generated/sample code in accordance with your hardware specification and desired driver functionality. Alternatively, you can use the generated/sample code as a reference for writing your own WinDriver .NET driver.