Click to Rate and Give Feedback
MSDN
MSDN Library
Windows Driver Kit
 Directory of Windows Driver Kit Sam...
Directory of Windows Driver Kit Samples
 
Windows Driver Kit: Samples and Tests

Directory of Windows Driver Kit Samples

The following tables supply basic information about the samples that are included in the Windows Driver Kit (WDK). For more information about each tool, read the documentation that describes the tool. The tables are organized according to the type of drivers to which the samples apply.

Note In conformance with Microsoft support policy, Microsoft is removing Microsoft Windows 2000 from its list of supported installation platforms for the Windows Driver Kit (WDK). The WDK continues to provide a Windows 2000 build environment for the development of drivers targeting Windows 2000.

Windows 2000 moved from Mainstream to Extended Support in June 2005 (as defined in the Microsoft Support Lifecycle policy available at http://support.microsoft.com/lifecycle/). The Extended Support phase includes security updates and paid support only; it does not provide support for design changes or new product features. As a result, build tools and platform or library support is limited to Windows XP SP2 and later versions of Windows.

The complete list of install-on platforms for the WDK consists of: Windows XP SP2, Windows Server 2003 SP1, and Windows Vista. The complete list of build-for platforms consists of: Windows 2000 SP4, Windows XP SP2, Windows Server 2003 SP1, and Windows Vista.

Customers that require Windows 2000 as an installation platform can download the Windows Server 2003 SP1 Driver Development Kit (DDK) at no cost from the Windows Hardware Developer Central Web site at http://www.microsoft.com/whdc/DevTools/ddk/default.mspx.

Device Technologies

Audio

Buses

Device Installation

Display

HID

IFSK

Imaging

KMDF

Modem

Multifunction

Network

Portable Devices

Print

Smart Card

Storage

Streaming Media

UMDF

WDM

Notes

  • In-box driver means either the code is from an in-box driver that is shipped with the Windows Vista operating system or the code was used for production hardware in previous Windows operating systems.

Samples

Audio

Sample name Build environment Target operating system PnP driver In-box driver Sample description
AC'97 Sample Driver and Related Code Samples Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No
The AC97 directory contains a sample AC'97 audio adapter driver and several related code samples.
Audio Property Page Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No
The Audio Property Page sample demonstrates the basics of writing an audio property page and can be used as a basis for your own property page.
DMusUART Sample Driver Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No The DMusUART sample driver is a DMus miniport driver that enables applications that use Microsoft DirectMusic or the Microsoft Windows multimedia midiInXxx and midiOutXxx functions to access an MPU-401 device.
FMSynth Sample Driver Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The FMSynth sample driver is a MIDI miniport driver that allows applications that use the Microsoft Windows multimedia midiOutXxx functions to access a device that implements OPL3-style FM synthesis.
HTML INF Viewer Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No The INFViewer directory contains an interactive viewer to examine the INF file for the AC'97 sample audio driver.
Imaadpcm Sample Codec Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The Imaadpcm sample codec contains encoding and decoding routines for the Interactive Multimedia Association (IMA) ADPCM format.
Microsoft Virtual Audio Device (MSVAD) Sample Drivers Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No The MSVAD collection of similar sample drivers demonstrates the basics of writing a Microsoft Windows Driver Model (WDM) audio driver.
MPU-401 Sample Driver Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The MPU-402 sample is a Microsoft Windows Driver Model (WDM) driver that supports the standard functions in an MPU-401 device.
Msfilter Sample Codec Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The Msfilter codec sample provides routines for volume and echo effects that you can apply to any audio content.
Msgsm610 Sample Codec Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The Msgsm610 sample implements a software codec that performs speech compression on a digital audio stream that contains voice content.
MSVAD Sample Driver with AC-3 Support (VADAC3) Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No This version of the MSVAD sample driver demonstrates how to support non-PCM audio stream formats.
MSVAD Sample Driver with DRM Support (VADDRMS) Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No This version of the MSVAD sample driver implements digital rights management (DRM) for a simple audio rendering device.
MSVAD Sample Driver with Multi-Stream DRM Support (VADDRMM) Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No This version of the MSVAD sample driver implements digital rights management (DRM) for an audio rendering device that can handle more than one audio stream.
MSVAD Sample Driver with Multi-Stream Support (VADMULTI) Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No This version of the MSVAD sample driver demonstrates how to support an audio rendering device that can play multiple audio streams.
MSVAD Sample Driver with Support for DirectSound 2-D Hardware Acceleration (VAD2DHW) Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No This version of the MSVAD sample driver supports Microsoft DirectSound 2-D hardware acceleration.
MSVAD Sample Driver with WAVEFORMATEXTENSIBLE Support (VADPCMEX) Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No This version of the MSVAD sample driver supports audio stream formats that the WAVEFORMATEXTENSIBLE structure specifies.
Sample AC'97 WDM Audio Driver Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No
This sample driver demonstrates the basics of writing a Microsoft Windows Driver Model (WDM) audio driver.
Sample Audio Control Panel Application Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No
The Audio Control Panel Application sample illustrates the basics of writing a Control Panel application.
Simple MSVAD Sample Driver (VADSIMP) Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No This version of the MSVAD sample driver demonstrates how to provide basic driver support for a simple audio device.
Sound Blaster 16 (SB16) Sample Driver Windows Server 2003
Windows XP
Windows 2000
Windows Server 2003
Windows XP
Windows 2000
No No The SB16 sample driver demonstrates the basics of writing a Microsoft Windows Driver Model (WDM) audio driver.
Standard IUnknown Implementation (Stdunk) Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The Stdunk sample is the standard implementation of the CUnknown class and the IUnknown interface.

Buses

Sample name Build environment Target operating system PnP driver In-box driver Sample description
1394VDEV and 1394DIAG - WDF Version Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No The 1394VDEV 1394DIAG sample drivers are Microsoft Windows Driver Foundation (WDF) versions of Windows Driver Model (WDM) samples that are present in the src\1394\ directory. The non-driver pieces of the sample that are described in this document can be obtained from src\1394 directory.
AGP440 Windows Vista
Windows Server 2008
Windows Vista
No Yes
AGP440 is a sample AGP chipset driver. You can use it to learn how to write an AGP driver.
Agplib Windows Vista
Windows Server 2008
Windows Vista
No Yes The Agplib sample is a library of common support routines that the AGP440, UAGP35, and GAGP30KX sample drivers use.
GAGP30KX Windows Vista
Windows Server 2008
Windows Vista
No Yes GAGP30KX is an AGP chipset driver sample that demonstrates how to write an AGP driver.
i8042 Sample Port Driver Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No Yes
The i8042 (PS/2) sample device driver implements the Microsoft Windows 2000style keyboard and mouse ports. This style differs from Microsoft Windows NT 4.0 because the device object is in the same driver stack as the class driver itself (either mouclass or kbdclass), instead of writing the device object's name to the registry and relying on the class driver to load after it and look at these names. Almost all of the other interactions with the class driver are the same.
 
The code works on Windows 2000 or later platforms. This code will not work on previous versions of Windows NT because of support for Plug and Play (PnP), power, and the new class drivers.
 
The i8042 driver supports PnP with respect to the PnP IRP, but the driver does not perform device detection or support hot plugging. As for power, this driver supports low power states by reinitializing the devices when normal power is resumed.
Installing or Updating the BulkUsb Driver Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The BulkUsb sample demonstrates a USB device that transfers data in BULK mode. This sample allows a user-mode application to read and write raw data directly to the endpoint of the USB device.
MCA Management Application Windows Vista
Windows Vista
Windows Server 2003
No No
The Machine Check Architecture (MCA) Management Application is a command-line application, which queries, retrieves, parses, and displays machine check error records on IA-64 class computer systems running a 64-bit (IA64) version of Windows XP or Windows Server 2003 family. The application provides the same support for machine check exception information on X86 and x64 platforms running 32-bit (X86) versions of Windows Server 2003 family and future releases of Windows correspondingly. The sample application demonstrates system developers how to make use of the MCA infrastructure on Windows Server 2003 and Windows XP platforms to identify hardware problems. More sophisticated system management applications might further enhance the basic functionality of this sample to also log, analyze, and report these hardware problems.
OSRUSBFX2 Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
The OSRUSBFX2 sample demonstrates how to perform bulk and interrupt data transfers to an USB device using the Microsoft Windows Driver Foundation (WDF). This sample is written for the OSR USB-FX2 Learning Kit. The specification for the device is at http://go.microsoft.com/fwlink/?LinkId=64091. 
PLX9x5x Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
The PLX9x5x sample demonstrates how to write driver for a generic PCI device by using the Microsoft Windows Driver Foundation (WDF). The target hardware for this driver is PLX9656/9653RDK-LITE board. The product kit and the hardware specification are available at http://go.microsoft.com/fwlink/?LinkId=65448.
Ports Class Installer Windows Vista
Windows Server 2003
Windows XP
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
No No The Ports Class Installer sample demonstrates a class installer and property page provider for the ports class of devices. The ports class is divided into two types of devices: COM (serial) ports and LPT or ECP (printer) ports.
serial Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
The sample serial (16550-based RS-232) Plug and Play (PnP)-compliant driver that supports dynamic device enumeration through serenum and removal through either hot plug or Device Manager.
Serial - WDF Version Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
This Serial (16550-based RS-232) driver is a Microsoft Windows Driver Foundation (WDF) version of the in-box serial driver that is present under %WDKROOT%\src\kernel\serial directory of the Windows Driver Kit (WDK).
Storage SDIO Driver Sample Windows Vista
Windows Vista
No No This is a sample for a functional Secure Digital (SD) IO driver.  The driver is written using the Kernel Mode Driver Framework.  It is a driver for a generic mars development board that implements the SDIO protocol without additional functionality.
Toaster - WDF Version Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The Toaster samples in this directory are a rewrite of the Microsoft Windows Driver Model (WDM) toaster driver (residing under src\general\toaster) by using Windows Driver Foundation (WDF). These samples show how to use driver framework APIs to achieve the equivalent WDM functionality with much less code. Only the drivers (bus, function, filter, and toastmon) of the WDM toaster package have been ported to use driver framework APIs. The installation instructions and test applications are the same as for the WDM version of toaster. Read the instruction and test application files from WDM toaster directory.  
UAGP35 Windows Vista
Windows Server 2008
Windows Vista
No Yes The UAGP35 sample is the Universal AGP version 3.5 chipset driver.

Device Installation

Sample name Build environment Target operating system PnP driver In-box driver Sample description
ClasFilt Sample INF File Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
The ClasFilt.inf file is a sample INF file that demonstrates the installation of a class filter driver that will be applied as an upper or lower filter to all devices of a specific device setup class.
Copy INF Co-installer Windows Vista
Windows Server 2008
Windows Vista
No No This sample is sample code for a co-installer that can be used with an INF file to install additional device INF files on the target system during a device installation.
Device Console (devcon) Windows Vista
Windows Server 2003
Windows XP
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
No No DevCon is a command-line tool that displays detailed information about devices and lets you search for and manipulate devices from the command line. DevCon enables, disables, installs, configures, and removes devices on the local computer and displays detailed information about devices on local and remote computers. DevCon is included in the Microsoft Windows Driver Kit (WDK).
Ports Class Installer Windows Vista
Windows Server 2003
Windows XP
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
No No The Ports Class Installer sample demonstrates a class installer and property page provider for the ports class of devices. The ports class is divided into two types of devices: COM (serial) ports and LPT or ECP (printer) ports.
Toaster Installation Package Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The Toaster Installation Package sample describes different approaches that end users take when adding new hardware to their computer and describes how to address these scenarios in a consistent, robust manner that works cooperatively with Plug and Play (PnP). This sample also outlines the mechanisms provided to facilitate additional vendor requirements such as the installation of value-added software.
Using DIFxAPI Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
No No This DIFxAPI sample demonstrates how to use the DIFx API.
Using DIFxAPI Application Driver Dependency Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
No No
This DIFxAPI sample (AppDev.exe) demonstrates the usage of the application-to-driver dependency feature of DIFxAPI.
 
Using DIFxApp Merge Module Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
No No
This DIFxApp sample demonstrates how to use the DIFxApp merge module (DIFxApp.msm) to install a driver package that is included in a Microsoft Windows Installer installation package for an application. 
 
Using DIFxApp WiX Library Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
No No
This DIFxApp sample describes how to use the Microsoft Windows Installer XML (WiX) tool set (version 2 or later) with DIFxApp to create a Windows Installer installation package.
 
 
Using DPInst Windows Vista
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
No No
The DPInst sample includes documentation and sample files to demonstrate how DPInst.exe is used to install a driver package.  

Display

Sample name Build environment Target operating system PnP driver In-box driver Sample description
AGP440 Windows Vista
Windows Server 2008
Windows Vista
No Yes
AGP440 is a sample AGP chipset driver. You can use it to learn how to write an AGP driver.
Agplib Windows Vista
Windows Server 2008
Windows Vista
No Yes The Agplib sample is a library of common support routines that the AGP440, UAGP35, and GAGP30KX sample drivers use.
GAGP30KX Windows Vista
Windows Server 2008
Windows Vista
No Yes GAGP30KX is an AGP chipset driver sample that demonstrates how to write an AGP driver.
Mirror - Mirror driver for mirroring GDI content Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No Yes
The Mirror sample demonstrates a driver that performs video mirroring.
Radeon 8500 Sample Driver Windows Vista
Windows Server 2008
Windows Vista
No No
The Radeon 8500 sample is a fully functional driver for Radeon 8500 display adapters. This sample helps you write a Windows Vista Display Driver Model (LDDM) driver.
UAGP35 Windows Vista
Windows Server 2008
Windows Vista
No Yes The UAGP35 sample is the Universal AGP version 3.5 chipset driver.

HID

Sample name Build environment Target operating system PnP driver In-box driver Sample description
HClient Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
The HClient sample code describe how to write a user-mode client application to communicate with devices that conform to the HID device class specification. This topic is useful to application writers who need to develop a user-mode application that communicates with and extracts information from an HID-compatible device. This sample illustrates the method for detecting HID devices, opening those HID devices for communication, and extracting and formatting the data into or from device reports.
i8042 Sample Port Driver Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No Yes
The i8042 (PS/2) sample device driver implements the Microsoft Windows 2000style keyboard and mouse ports. This style differs from Microsoft Windows NT 4.0 because the device object is in the same driver stack as the class driver itself (either mouclass or kbdclass), instead of writing the device object's name to the registry and relying on the class driver to load after it and look at these names. Almost all of the other interactions with the class driver are the same.
 
The code works on Windows 2000 or later platforms. This code will not work on previous versions of Windows NT because of support for Plug and Play (PnP), power, and the new class drivers.
 
The i8042 driver supports PnP with respect to the PnP IRP, but the driver does not perform device detection or support hot plugging. As for power, this driver supports low power states by reinitializing the devices when normal power is resumed.
kbdclass Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No Yes
The kbdclass sample driver is a keyboard class driver that is compliant with Plug and Play (PnP) on Microsoft Windows 2000 and later operating systems.
Kbfiltr - WDM Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No Yes
The Kbfiltr sample driver filters input for a particular keyboard on the system.
Mouclass Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
The Mouclass sample is a mouse-class driver that is compliant with Microsoft Windows 2000 Plug and Play (PnP). The behavior of the various routines is documented in the source code files.
Moufiltr Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No Yes
The Moufiltr sample driver filters input for a particular mouse on the system.
Tablet PC Button Sample Windows Vista
Windows Vista
No No The Tablet PC button sample driver demonstrates how to support i8042 port-compatible button devices that are installed in a Tablet PC.
VHIDMINI - Sample for Virtual HID device Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
The Vhidmini.sys driver is a sample HID minidriver that demonstrates:
  • How to communicate with a HID minidriver from an HID client by using a custom-feature item in order to control certain features of the HID minidriver. This control is needed because other conventional modes for communicating with a driver, like custom IOCTL or WMI, do not work with the HID minidriver.
  • How to test a HID report descriptor without using a physical device.
  • The structure of a HID minidriver and handling of internal IOCTLs that the HIDclass driver sends.
Wacom Digitizer Driver Sample Windows Vista
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No Yes The Wacom Digitizer Driver Sample is a sample digitizer driver that is based on the in-box Wacompen.sys driver for Wacom pen digitizers. This sample is contained in the \src\input\hiddigi directory.

IFSK

Sample name Build environment Target operating system PnP driver In-box driver Sample description
cancelSafe Minifilter Sample Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No cancelSafe is a sample minifilter that you use if you want to use cancel-safe queues.
CDO Minifilter Sample Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The CDO minifilter sample is an example if you intend to use a control device object (CDO) with your minifilters. Although the filter manager infrastructure provides a message interface for communication between applications and minifilters, you might need explicit CDOs while the minifilters interface with legacy software. This sample shows how to create and use a CDO with minifilters. 
CD-ROM File System Driver Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No Yes The Cdfs sample is a sample file-system driver that you can use to write new file-systems.
Ctx Minifilter Sample Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The Ctx minifilter is an example that demonstrates how to attach contexts to instances, files, streams, and stream handles in your minifilter.
fastfat File System Driver Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No Yes The fastfat sample is file-system driver that you can use if you want to write new file systems.
Metadata Manager Minifilter Sample Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The metadata minifilter sample serves as an example if you want to use files for storing metadata that corresponds to your minifilters. The implementation of this sample depicts scenarios in which modifications to the file might have to be blocked or the minifilter might be required to close the file temporarily. 
minispy Minifilter Sample Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The minispy sample is a tool to monitor and log any I/O and transaction activity that occurs in the system. This sample is similar to the FileSpy legacy filter; however, unlike FileSpy, minispy has been implemented as a minifilter.
nullFilter Minifilter Sample Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The nullFilter minifilter is a sample minifilter that shows how to register a minifilter with the filter manager.
NullMRx No No The NullMRx sample is a simple network provider and driver that illustrate how network providers bind to the Multi-Protocol Router and redirectors to the Multiple UNC Provider.
passThrough Minifilter Sample Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The passThrough minifilter demonstrates how to specify callback functions for different types of I/O requests.
scanner Minifilter Sample Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The scanner minifilter is an example for developers who intend to write filters that examine data in files. Typically, anti-virus products fall into this category.
SmbMRx No No The SmbMRx sample is an example of a fully functional network provider.
swapBuffers Minifilter Sample Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The swapBuffers minifilter demonstrates how to switch buffers between reads and writes of data. This technique is particularly useful for encryption filters because they have to encrypt data before writing it to disk and decrypt it after reading it from disk. Because encryption/decryption has to be done transparently, you cannot use system-supplied buffers directly, so intermediate buffers have to be introduced.

Imaging

Sample name Build environment Target operating system PnP driver In-box driver Sample description
Error Handler Sample Windows Vista
Windows Vista
No No
The error handler sample implements the error handler for the "Extended Monster Driver". You can use this sample with the Extended Monster Driver sample.
 
Extended Monster Device Windows Vista
Windows Vista
No No The Extended Monster Device sample implements the WIA minidriver by using the WIA 2.0 interfaces.
Sample User Interface Extension Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No The Sample User Interface Extension sample shows how to write Microsoft Windows Image Acquisition (WIA) user interface (UI) extensions. This sample adds tabs to the device properties dialog box (which is accessible from Windows Explorer) and adds commands to the context menu for the sample camera device’s icon.
WIA Camera Driver Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No This sample shows how to write a Windows Image Acquisition (WIA) user-mode minidriver for a camera. It simulates a camera by reading images from a directory on the hard disk.
WIA Camera Microdriver Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No
This sample shows how to write a Windows Image Acquisition (WIA) user-mode microdriver for a camera. It simulates a camera by reading images from a directory on the hard disk. You can use this sample driver as a starting point for your development, but your driver should access the camera hardware through one of the kernel drivers provided with Windows.
WIA Microdriver Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No This sample shows how to write a Windows Image Acquisition (WIA) microdriver for a flatbed scanner. The microdriver architecture is functionally reduced from the WIA minidriver architecture but supports the primary scanning functions.

KMDF

Sample name Build environment Target operating system PnP driver In-box driver Sample description
1394VDEV and 1394DIAG - WDF Version Windows Vista
Windows Server 2003
Windows XP
Windows Vista
Windows Server 2003
Windows XP
No No The 1394VDEV 1394DIAG sample drivers are Microsoft Windows Driver Foundation (WDF) versions of Windows Driver Model (WDM) samples that are present in the src\1394\ directory. The non-driver pieces of the sample that are described in this document can be obtained from src\1394 directory.
AMCC5953 - PCI Device Driver Using WDF Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
The AMCC5953 sample demonstrates how to write driver for a generic PCI device by using the Microsoft Windows Driver Foundation (WDF). The target hardware for this driver is AMCC PCI Matchmaker Developer’s kit (S5935DK1) board. The product kit and the hardware specification are available at http://go.microsoft.com/fwlink/?LinkId=65450.
ECHO Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
The ECHO sample demonstrates how to use sequential queue to serialize read and write requests that are presented to the driver, and how to use framework-provided locking scheme to synchronize execution of these events with other asynchronous events, such as request cancellation and DPC.
FakeModem - Unimodem controller-less modem sample driver Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No This sample demonstrates a simple controllerless modem driver. This driver supports sending and receiving AT commands using the ReadFile/WriteFile calls or by using a TAPI interface with an application such as HyperTerminal.
FIREFLY - WDF filter driver for HID device Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
Firefly is a sample filter driver written with a purpose to demonstrate the following:
  • Usage of driver framework APIs. Note that a non driver framework version is available as well.
  • Programming an HID device using kernel-mode IOCTLs
    1. Opening a HID collection of the target device in kernel mode by using ZwCreateFile to get a handle to the device.
    2. Using IOCTL_HID_xxx requests to obtain the HID collection's previously parsed data and information.
    3. Calling HidP_Xxx HID support routines to interpret HID reports.
    4. Using IOCTL_HID_SET_xxx or IOCTL_HID_GET_xxx to set or get feature reports.
  • Providing a WMI interface to have a sideband communication with the user-mode application.
  • Writing an INF file to install a device filter driver on an existing HID device.
  • Showing how to open a WMI class in user mode and get or set data items using COM interfaces.
HIDUSBFX2 Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The HIDUSBFX2 sample demonstrates how to write a HID minidriver by using the Microsoft Windows Driver Foundation (WDF). The sample also demonstrates how to map a non-HID USB device to a HID device. The minidriver is written for the OSR USB-FX2 Learning Kit. This device is not HID-compliant and the sample exposes the device as a HID device.
KbFiltr Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No This sample is a WDF version of a WDM filter driver sample that is located in the src\input\kbfiltr directory of the Windows Driver Kit (WDK). This sample is an upper device filter driver sample for a PS/2 keyboard.
NDISEDGE - NDIS-WDF Miniport Driver Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
The purpose of this sample is to illustrate functionality of an NDIS-WDF miniport driver. An NDIS-WDF miniport driver exposes NDIS miniport interface at its upper edge and uses Windows Driver Framework interfaces to interact with other WDM drivers such as USB, IEEE 1394, and serial at its lower edge.
NDISProt Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No This sample demonstrates a connectionless NDIS 5.0, 5.1, or 6.0 protocol driver that uses the Windows Driver Foundation (WDF).
NONPNP Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
This sample is primarily meant to demonstrate how to write a driver that is not Plug and Play (NON-PNP) using the Windows Driver Framework. It also illustrates several other important framework interfaces. The sample is accompanied by a simple multithreaded Win32 console application to test the driver. This sample is adapted from the original IOCTL sample present in the WDK (src\general\ioctl).
OSRUSBFX2 Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
The OSRUSBFX2 sample demonstrates how to perform bulk and interrupt data transfers to an USB device using the Microsoft Windows Driver Foundation (WDF). This sample is written for the OSR USB-FX2 Learning Kit. The specification for the device is at http://go.microsoft.com/fwlink/?LinkId=64091. 
PCIDRV - WDF Driver for PCI Device Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
This sample is a fully functional Windows Framework driver for Intel 82557/82558-based PCI Ethernet Adapter (10/100) and Intel compatibles. The purpose of this sample is to teach how to write a driver for a PCI device using Windows Driver Framework (WDF).
 
PLX9x5x Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
The PLX9x5x sample demonstrates how to write driver for a generic PCI device by using the Microsoft Windows Driver Foundation (WDF). The target hardware for this driver is PLX9656/9653RDK-LITE board. The product kit and the hardware specification are available at http://go.microsoft.com/fwlink/?LinkId=65448.
RAMDISK Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No This sample demonstrates a software only Windows 2000 Device Driver that uses the Driver Framework model. This driver creates a RAM disk drive of the specified size.
Serial - WDF Version Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
This Serial (16550-based RS-232) driver is a Microsoft Windows Driver Foundation (WDF) version of the in-box serial driver that is present under %WDKROOT%\src\kernel\serial directory of the Windows Driver Kit (WDK).
Storage SDIO Driver Sample Windows Vista
Windows Vista
No No This is a sample for a functional Secure Digital (SD) IO driver.  The driver is written using the Kernel Mode Driver Framework.  It is a driver for a generic mars development board that implements the SDIO protocol without additional functionality.
Toaster - WDF Version Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The Toaster samples in this directory are a rewrite of the Microsoft Windows Driver Model (WDM) toaster driver (residing under src\general\toaster) by using Windows Driver Foundation (WDF). These samples show how to use driver framework APIs to achieve the equivalent WDM functionality with much less code. Only the drivers (bus, function, filter, and toastmon) of the WDM toaster package have been ported to use driver framework APIs. The installation instructions and test applications are the same as for the WDM version of toaster. Read the instruction and test application files from WDM toaster directory.  
UsbSamp Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The USBSAMP sample demonstrates how to perform bulk and isochronous data transfers to a generic USB device by using the Microsoft Windows Driver Foundation (WDF).
WDF Hybrid 1394 Virtual Device Sample Driver Windows Vista
Windows Server 2003
Windows XP
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
No No
The driver present in this directory is a Windows Driver Foundation port of the 1394 Virtual Device sample driver and supporting dynamic link library present under src\1394 directory.
This document and the associated source code describe how to interact with the 1394 driver stack.  The WDF 1394 Hybrid Sample consist of two sample WDF Drivers, a UMDF component (umdf1394vdev.dll) and a KMDF component (kmdf1394vdev.sys).  The sample also includes a user mode application that instantiates the loading the WDF Hybrid Driver stack and allows interaction with the 1394 bus driver through the installed WDF Hybrid Driver stack.
WmiSamp Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Server 2008
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No The WmiSamp sample is a sample WDF driver that is based on the src\wdm\wmi\WMIFILT WDM sample driver from the Microsoft Windows Server 2003 SP1 Driver Development Kit (DDK) that provides WMI data blocks. This sample demonstrates how to register the WMI providers and create provider instances for the framework device object. It also illustrates how to handle the WMI queries sent to the device.

Modem

Sample name Build environment Target operating system PnP driver In-box driver Sample description
FakeModem - Unimodem controller-less modem sample driver Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No This sample demonstrates a simple controllerless modem driver. This driver supports sending and receiving AT commands using the ReadFile/WriteFile calls or by using a TAPI interface with an application such as HyperTerminal.
Serial - WDF Version Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No
This Serial (16550-based RS-232) driver is a Microsoft Windows Driver Foundation (WDF) version of the in-box serial driver that is present under %WDKROOT%\src\kernel\serial directory of the Windows Driver Kit (WDK).

Multifunction

Sample name Build environment Target operating system PnP driver In-box driver Sample description
Printer INF Samples Windows Vista
Windows Server 2003
Windows XP
Windows 2000
Windows Vista
Windows Server 2003
Windows XP
Windows 2000
No No This sample demonstrates how to write sample INF files for printer drivers.

Network

Sample name Build environment Target operating system PnP driver In-box driver Sample description
COISDN - Connection Oriented NDIS Miniport ISDN Sample Windows Vista
Windows Server 2003
Windows XP
Windows 2000