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.
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
). 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
.
| 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. |
| 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 2000–style 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. |
| 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. |
| 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 2000–style 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. |
| 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. |
| 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
- Opening a HID collection of the target device in kernel mode by using ZwCreateFile to get a handle to the device.
- Using IOCTL_HID_xxx requests to obtain the HID collection's previously parsed data and information.
- Calling HidP_Xxx HID support routines to interpret HID reports.
- 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. |
| 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
| Windows Server 2008 Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | No | The COISDN sample demonstrates a connection-oriented NDIS 5.0 client. |
| E100bex 5.x - NDIS 5 Miniport Driver | Windows Vista Windows Server 2003 Windows XP
| Windows Server 2008 Windows Vista Windows Server 2003 Windows XP
| No | No | The E100bex 5.x sample is an NDIS 5.1 deserialized miniport driver for the Intel EtherExpress PRO/100 + Ethernet PCI adapter and the Intel EtherExpress PRO/100B PCI adapter. |
| E100bex 6.0 - NDIS 6.0 Miniport Driver | Windows Vista
| Windows Server 2008 Windows Vista
| No | No | The E100bex 6.0 sample is a NDIS 6 miniport driver for the Intel EtherExpress PRO/100+ Ethernet PCI adapter and the Intel EtherExpress PRO/100B PCI adapter. |
| Mux 5.x - NDIS 5.x MUX Intermediate Driver sample | Windows Vista Windows Server 2003 Windows XP
| Windows Server 2008 Windows Vista Windows Server 2003 Windows XP
| No | No | The MUX Intermediate Miniport (IM) driver is an NDIS 5.x driver that demonstrates the operation of an “N:1” MUX driver--that is, a driver that creates multiple virtual network devices over a single miniport adapter. An NDIS 6.0 version of the sample is also available in the Microsoft Windows Driver Kit (WDK). |
| Mux 6.0 - NDIS 6.0 MUX Intermediate Driver sample | Windows Vista
| Windows Server 2008 Windows Vista
| No | No | The MUX Intermediate Miniport (IM) driver is a NDIS 6.0 driver that demonstrates the operation of an “N:1” MUX driver (that is, a driver that creates multiple virtual network devices on top of a single lower adapter). This sample implements IEE.1Q VLAN Tagging. A NDIS 5 version of the sample is also available in the Microsoft Windows Driver Kit (WDK). |
| Mux.dll - Sample Notify Object | Windows Vista Windows Server 2003 Windows XP
| Windows Server 2008 Windows Vista Windows Server 2003 Windows XP
| No | No | The MUX Notify Object sample demonstrates how to write a notify object for installing and configuring a NDIS MUX intermediate miniport (IM) driver that implements an N:1 relationship between upper and lower bindings (that is, it creates multiple virtual network devices on top of a single lower adapter. |
| Native Wifi IHV Service | Windows Vista
| Windows Server 2008 Windows Vista
| No | No | This sample code demonstrates IHV extensibility for Native WiFi. In particular, this sample contains the following features: - IHV profile validation
- IHV discovery profile creation
- IHV extension for interactive UI and Profile UI
- 802.1x extension.
The sample, after you compile and install it, enables you to connect to an Open WEP Network by using 802.1X through IHV Service extension. |
| Native Wi-Fi Miniport Sample Driver - PCI | Windows Vista
| Windows Vista
| No | No | This sample shows the typical behavior of a Native Wi-Fi miniport driver. This driver is an NDIS 6.0 miniport driver that conforms to the Microsoft Native Wi-Fi miniport driver specification operating in the Extensible Station (ExtSTA) mode. The driver is fully operational and runs on the Realtek RTL8185 chipset. |
| Native Wi-Fi Miniport Sample Driver - USB | Windows Vista
| Windows Vista
| No | No | This sample shows the typical behavior of a Native Wi-Fi USB miniport driver that uses KMDF. This driver is an NDIS 6.0 miniport driver that conforms to the Microsoft Native Wi-Fi miniport driver specification, operating in the Extensible Station (ExtSTA) mode. The driver is fully operational and runs on the Realtek RTL8187 chipset. |
| NDIS Virtual Miniport Driver | Windows Vista Windows Server 2003 Windows XP
| Windows Server 2008 Windows Vista Windows Server 2003 Windows XP
| No | No | The NDIS Virtual Miniport Driver sample illustrates the functionality of a deserialized NDIS miniport driver without requiring a physical network adapter. This sample is based on E100BEX sample in the Microsoft Windows Driver Kit (WDK). It is basically a simplified version of E100bex driver. Because the driver does not interact with any hardware, it makes it very easy to understand the miniport interface and the usage of various NDIS functions without the clutter of hardware-specific code that is normally found in a fully functional driver. The driver can be installed either manually using the Add Hardware wizard as a root enumerated virtual miniport driver or on a virtual bus (like toaster bus). Note This sample provides an example of minimal driver intended for education purposes. The driver and its sample test programs are not intended for use in a production environment. The driver can be built in the Microsoft Windows XP, Windows Server 2003, and Windows Vista WDK build environments. The driver can be installed in the Windows XP, Windows Server 2003, and Windows Vista operating system. |
| 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 5.x- NDIS 5.x connection-less protocol driver sample | Windows Vista Windows Server 2003 Windows XP
| Windows Server 2008 Windows Vista Windows Server 2003 Windows XP
| No | No | The NDISProt 5.x sample demonstrates a connection-less NDIS 5 protocol driver. |
| NDISProt 6.0- NDIS 6.0 connection-less protocol driver sample | Windows Vista
| Windows Server 2008 Windows Vista
| No | No | This Ndisprot sample demonstrates a connection-less NDIS 6.0 protocol. An NDIS 5 version of this sample is also available in the Microsoft Windows Driver Kit (WDK). |
| Network Configuration/Installation Sample | Windows Vista Windows Server 2003 Windows XP
| Windows Vista Windows Server 2003 Windows XP
| No | No | The Network Configuration/Installation sample demonstrates how to use INetCfg application programming interfaces (APIs) to enumerate, install, uninstall, bind, and unbind network components. |
| NSCIRDA – NDIS Fast Infrared Miniport | Windows Vista Windows Server 2003 Windows XP
| Windows Vista Windows Server 2003 Windows XP
| No | No | The NSCIRDA sample is a sample NDIS driver that supports the National Semiconductor Fast Infrared Controllers. It implements the OID_IRDA_* calls that are required of any NDIS IrDA miniport. |
| Passthru Ndis Intermediate Sample Driver | Windows Vista Windows Server 2003 Windows XP
| Windows Server 2008 Windows Vista Windows Server 2003 Windows XP
| No | No | The Passthru sample driver is a do-nothing pass-through NDIS 5 driver that demonstrates the basic principles underlying a NDIS Intermediate Miniport (IM) driver. |
| Sample NDIS 6.0 Filter Driver | Windows Vista
| Windows Server 2008 Windows Vista
| No | No | The Ndislwf sample is currently a do-nothing pass-through NDIS 6 filter driver that demonstrates the basic principles of an NDIS 6.0 Filter driver. The sample replaces the NDIS 5 Sample Intermediate Driver (Passthru driver). This driver exposes a virtual device to handle IOCTLs from user applications. Although the filter driver is a modifying filter driver, the filter driver currently does not modify the send data and it only re-packages and sends down all requests and sends submitted requests to one of the filter modules in this filter driver. The filter driver can be modified to change the data before passing it along or generate new send data and send it down. For example, it could encrypt or compress outgoing and decrypt or decompress incoming data. Ndislwf also indicates up all received data and status indications that it receives. It can be modified to change the data or status indications before indicating it up, and also the filter driver can generate status indications and receive data. Note This sample provides an example of minimal driver intended for education purposes. The driver and its sample test programs are not intended for use in a production environment. |
| Sample NDIS-WDM Miniport Driver | Windows Vista Windows Server 2003
| Windows Server 2008 Windows Vista Windows Server 2003
| No | No | The Sample NDIS-WDM Miniport Driver illustrates the functionality of an NDIS-WDM miniport driver. An NDIS-WDM driver exposes NDIS miniport interface at its upper edge and uses IRPs to interact with other WDM drivers such as USB, IEEE 1394, and serial at its lower edge. Unlike NDIS miniport drivers, which can call only NDIS functions, an NDIS-WDM driver can call both NDIS and non-NDIS functions. However, whenever possible, the miniport driver should call NDIS functions. For example, a miniport driver that controls devices on either Universal Serial Bus (USB) or IEEE 1394 (firewire) buses must expose a standard NDIS miniport driver interface at its upper edge and use the class interface for the particular bus at its lower edge. Such a miniport driver communicates with devices that are attached to the bus by sending I/O request packets (IRPs) to the bus. |
| Windows Filtering Platform MSN Messenger Monitor Sample | Windows Vista
| Windows Vista
| No | No | This sample application and driver demonstrate the stream inspection capabilities of the Windows Filtering Platform (WFP). |
| Windows Filtering Platform Packet Modification Sample | Windows Vista
| Windows Server 2008 Windows Vista
| No | No | The sample driver demonstrates the packet modification capabilities of the Windows Filtering Platform (WFP). |
| Windows Filtering Platform Stream Edit Sample | Windows Vista
| Windows Vista
| No | No | This sample driver demonstrates replacing a string pattern for a Transmission Control Protocol (TCP) connection using the Windows Filtering Platform (WFP). |
| Windows Filtering Platform Traffic Inspection Sample | Windows Vista
| Windows Server 2008 Windows Vista
| No | No | This sample driver demonstrates the traffic inspection capabilities of the Windows Filtering Platform (WFP). |
| WSK TCP Echo Server | Windows Vista
| Windows Vista
| No | No | This sample driver is a minimal driver meant to demonstrate the usage of the Winsock Kernel (WSK) programming interface. This sample is not intended for use in a production environment. |
| Sample name | Build environment | Target operating system | PnP driver | In-box driver | Sample description |
| Async Notification Sample | Windows Vista
| Windows Vista
| No | No | The Async Notification sample demonstrates how to implement AsyncNotification to communicate between registered applications and printing components that are loaded in the spooler. This spooler notification mechanism enables print components that run in the spooler process to display user interface elements in the session in which the print job was initiated. The client part of the sample is a simple application that registers for Async print notifications and acts as the listener. The server part of the sample opens a notification channel and acts as the sender. The server part of the sample is compiled as a library to be linked to a port monitor or a print processor. Note This sample has not been thoroughly tested and is provided here only as a proof of concept. |
| Auto-Configuration Samples | Windows Vista
| Windows Vista
| No | No | Auto-configuration adjusts the settings of a print queue according to the installable features of a device, rather than the driver's default settings. The AutoConfig sample demonstrates how to implement Unidrv-based and PScript5-based drivers to leverage the in-box support for auto-configuration. The sample works only when you use it with the standard TCP/IP port monitor or the Network-Connected Device (NCD) port monitor. |
| CPSUISAM | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP
| No | Yes | The CPSUISAM application causes the Common Property Sheet User Interface (CPSUI) to call the Microsoft Windows Server 2003, Windows XP, or Windows 2000 print spooler to create property sheet pages for the system's default printer. (Note that printer interface DLLs should not perform this action.) The application then creates an additional property sheet page to illustrate some of the techniques that you can use when you are using CPSUI to create a new page. |
| Generic Text-Only Driver | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | Yes | The Generic Text-Only Driver (TTY) sample demonstrates how to implement a print driver that is Unidrv-based, generic, and text-only. |
| GenPrint Print Processor Sample | Windows Vista
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | Yes | The GenPrint Print Processor sample demonstrates how to implement a print processor. |
| LocalMon: Sample Port Monitor Server DLL | | Windows Server 2008 Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | Yes | A port monitor server DLL is a user-mode DLL that is responsible for providing a communications path between the user-mode print spooler and the kernel-mode port drivers that access I/O port hardware. |
| LocalUI: Sample Port Monitor UI DLL | | Windows Server 2008 Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | No | A port monitor's user interface DLL contains user interface functionality and runs on print client systems. |
| MSPLOT Plotter Driver Sample | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | Yes | The MSPLOT sample is a Microsoft Windows Vista, Windows Server 2003, Windows XP, and Windows 2000 printer driver that is designed to support all HPGL/2 compatible plotters. |
| OEMUNI Unidrv Render Plugin Sample | Windows Vista Windows Server 2003 Windows XP
| Windows Server 2008 Windows Vista Windows Server 2003 Windows XP
| No | Yes | The OEMUNI Unidrv Render Plugin Sample demonstrates how to write a Unidrv-based rendering plug-in. |
| PJLMon: Sample Language Monitor | | Windows Server 2008 Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | No | A language monitor provides full-duplex communication between the print spooler and bidirectional printers that are capable of providing software-accessible status information. The language monitor adds printer control information, such as commands defined by a printer job language, to the data stream. |
| Print Client-Side Rendering EMF Despooling Sample | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP
| No | No | When jobs are printed to a printer connection, the Print Spooler on Microsoft Windows Vista and later operating systems can render the job on the client or send it to the server. The spooler bases this decision on a setting on the server Print Queue. This sample demonstrates how to set the server Print Queue for EMF (Enhanced Metafile) despooling (server-side rendering). |
| Print Pipeline Simple Filter | Windows Vista
| Windows Vista Windows Server 2003 Windows XP
| No | No | The printing system supports a print filter pipeline. The pipeline is run when a print job is consumed by the print spooler and sent to the device. This sample shows how to use the print pipeline's filter interfaces. |
| Print Provider Sample Template | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | No | This sample is a template that contains skeletal implementations of the functions that print providers should define. This sample is not a functional print provider. |
| 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. |
| Queueasp | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | No | The Queueasp sample creates a custom device status Active Server Page (ASP) script for a Web printer. |
| Sample Plugin for Full Unidrv UI Replacement and IPrintCoreHelper Usage | Windows Vista
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | No | This Universal Printer Driver (Unidrv) UI plugin sample shows how to fully replace Unidrv's standard UI and how to use the new IPrintCoreHelper interface to enumerate GDP features/options, enumerate constraints, get/set Unidrv settings, and create a GDL snapshot. |
| Unidrv Bitmap Plugin Sample | Windows Vista Windows Server 2003 Windows XP
| Windows Server 2008 Windows Vista Windows Server 2003 Windows XP
| No | Yes | The Unidrv Bitmap Plugin sample demonstrates how to write a Unidrv-based bitmap driver. The sample is based on the redesigned version of the oemuni sample that also ships with the Windows DDK. |
| Unidrv OEM Preanalysis Plugin Sample | Windows Vista
| Windows Vista Windows Server 2003 Windows XP
| No | No | The Unidrv OEM Preanalysis Plugin Sample illustrates how you can use the preanalysis feature in Unidrv. This sample is built on the redesigned version of the oemuni sample. |
| Unidrv Plug-in for Print Ticket Provider Interface | Windows Vista
| Windows Server 2008 Windows Vista
| No | No | The Unidrv Plug-in for Print Ticket Provider Interface sample contains a functional Unidrv configuration plug-in that implements the IPrintOemPrintTicketProvider interface. You can use this code as a starting point for developing new driver plug-ins that support PrintTicket functionality. |
| Unidrv/PScript5 OEM Customization Plugin Samples | Windows Vista
| Windows Server 2008 Windows Vista Windows Server 2003 Windows XP
| No | Yes | The OEMDLL samples are an illustration of OEM customization plug-ins. The BITMAP, OEMPS, OEMUI, OEMUNI, OEMPREAN, CUSTHLP, SyncSet, ThemeUI, PSUIRep, and Watermark samples do not affect the printer output. They are only examples of how to build OEM Customization DLLs of various types. |
| XPSDrv Driver and Filter Sample | Windows Vista
| Windows Server 2008 Windows Vista Windows Server 2003 Windows XP
| No | No | This sample is intended to provide a starting point for developing XPSDrv printer drivers and to illustrate the facility and potential of an XPSDrv print driver. This goal is accomplished by implementing a number of real-world features within a set of XPS print pipeline filters that are configured through a configuration plug-in that supports custom UI content and PrintTicket handling. |
| Sample name | Build environment | Target operating system | PnP driver | In-box driver | Sample description |
| 4mmdat | Windows Vista
| Windows Vista
| No | Yes | The 4mmdat sample is a working example of a 4mm DAT tape miniclass driver. This module contains device-specific routines for 4mm DAT drives, such as Sony SDT-2000, Sony SDT-4000, DEC TLZ06, Seagate, Hewlett-Packard 35470A, Hewlett-Packard C1533A, and so on. |
| Addfilter Command-Line Application | Windows Vista
| Windows Vista
| No | No | Addfilter is a command-line application that adds and removes filter drivers for a given drive or volume. This application demonstrates how to insert a filter driver into the driver stack of a device. The sample illustrates how to insert such a filter driver by using the SetupDi APIs. The sample works on the x86-based platform and has been tested only in a 32-bit environment. Because Addfilter is not a driver, it does not deal with Plug and Play (PnP) or power management. |
| Adicsc | Windows Vista
| Windows Vista
| No | Yes | The adicsc sample is an ADIC Scalar changer miniclass driver. |
| CDROM Class Driver | Windows Vista
| Windows Vista
| No | Yes | The CDROM class driver sample is used for managing CD-ROM and DVD devices. |
| Changer INF Samples | Windows Vista
| Windows Vista Windows Server 2003 Windows XP
| No | Yes | Microsoft provides a useful tool for checking INF file structure and syntax called ChkINF. ChkINF is a Perl script that checks the structure and syntax of Microsoft Windows 2000, Windows XP, and Windows Server 2003 driver INF files. Results are presented in HTML format and include a list of the errors and warnings that are detected in each INF file, with each error and warning shown next to the errant INF file entry. ChkINF is available in the Windows Driver Kit (WDK) in the tools\chkinf directory. This tool is also included in the Hardware Compatibility Test (HCT) Kits used for Designed for Windows Logo testing. Note ChkINF will produce a number of warnings that are related to unreferenced sections in the INFs when run on the sample INFs. This behavior is expected because they all contain install sections for more than one processor architecture. Please refer to the ChkINF documentation for more information. |
| Common Library for Storage Class Drivers | Windows Vista
| Windows Vista
| No | Yes | This library is the library for all storage drivers. It simplifies writing a storage class driver by implementing 90 percent of the code that you need to support Plug and Play (PnP), power management, and so on. This library is used by disk, CDROM, and the tape class drivers. |
| Ddsmc | Windows Vista
| Windows Vista
| No | Yes | The ddsmc sample is a DDS 4mm changer miniclass driver. |
| Disk Class Driver | Windows Vista
| Windows Server 2008 Windows Vista
| No | Yes | The disk class driver sample is used for managing disk devices. |
| DiskPerf Filter Driver | Windows Vista
| Windows Vista
| No | No | The DiskPerf filter driver monitors disk access and captures performance data. This driver supports Plug and Play (PnP), power management, and Microsoft Windows Management Instrumentation (WMI). This driver is not 64-bit compliant. |
| Dlttape | Windows Vista
| Windows Vista
| No | Yes | The dlttape sample is a working example of a DLT tape miniclass driver. This module contains device-specific routines for DLT tape drives such as Quantum DLT 7000, DEC TZ87, and so on. |
| Elmsmc | Windows Vista
| Windows Vista
| No | Yes | The elmsmc sample is an Elms changer miniclass driver. |
| Exabyte2 | Windows Vista
| Windows Vista
| No | Yes | The exabyte2 sample is a working example of an Exabyte2 tape miniclass driver. This module contains device-specific routines for the Exabyte EXB-8500 tape drive. |
| Examc | Windows Vista
| Windows Vista
| No | Yes | The examc sample is an Exabyte changer miniclass driver. |
| FDC | Windows Vista
| Windows Vista
| No | Yes | The Fdc sample is a floppy disk controller that is located in the \\Ntddk\Src\Storage\Fdc\Fdc directory. |
| flpyDisk | Windows Vista
| Windows Vista
| No | Yes | The flpydisk sample is a sample class floppy driver. |
| Hpmc | Windows Vista
| Windows Vista
| No | Yes | The hpmc sample is a Hewlett-Packard changer miniclass driver. |
| I2o | Windows Vista
| Windows Vista
| No | Yes | The i2o sample is a storport miniport driver that supports a variety of I2O Controllers. It exports functions that are used by storport.sys to issue requests to the underlying RAID sets and pass-through devices, such as tape and CD-ROM drives. This driver illustrates the use of the new storport functionality to create a fully-featured storport miniport driver. |
| Mcd | Windows Vista
| Windows Vista
| No | Yes | The changer class device driver architecture enables support for a class of devices commonly referred to as libraries, changers, or robots, and enables automated mounting and dismounting of storage media into drives (disk, tape, optical, CD-ROM, DVD-ROM, and so on). Microsoft has provided several driver samples that illustrate the various ways that the devices can be supported. No INF file is needed to install this driver. This driver gets installed when a changer minidriver is installed. |
| Miniqic | Windows Vista
| Windows Vista
| No | Yes | The miniqic sample is a working example of the Miniqic tape miniclass driver. This module contains device-specific routines for minicartridge QIC drives such as TECMAR Travan, Conner CTT8000-S, and so on. |
| Nsmmc | Windows Vista
| Windows Vista
| No | Yes | The nsmmc sample is an NSM changer miniclass driver. |
| Pciide | Windows Vista
| Windows Vista
| No | Yes | The pciide sample provides a generic example of a PCI IDE minidriver. The sample isolates vendor-specific code from the higher-level PCI IDE bus driver, similar to how SCSI minidrivers isolate code from the SCSI port driver. |
| SCSI Pass Through Interface | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | No | The SCSI Pass Through Interface sample demonstrates how to communicate with a SCSI device from MIcrosoft Win32 applications by using the DeviceIoControl API. |
| Sfloppy | Windows Vista
| Windows Vista
| No | Yes | The sfloppy sample is a super floppy driver. This driver is a class driver for Super Floppy disk drives. |
| Sonymc | Windows Vista
| Windows Vista
| No | Yes | The sonymc sample is a Sony changer miniclass driver. |
| 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. |
| Tape | Windows Vista
| Windows Vista
| No | Yes | The tape sample is the tape class driver and implements device-independent support and exports support routines for device-specific tape miniclass drivers. It handles device-independent tape requests and calls the tape miniclass driver routines to process device-specific functions. Class driver splits transfer requests, when necessary, to fit the maximum transfer size for the underlying host bus adapter. It also provides device-independent, tape-specific error handling and calls the tape miniclass driver's device-specific error handling routines. No INF file is needed to install this driver. This driver is installed when a tape miniclass driver is installed. |
| Tape INF Samples | Windows Vista
| Windows Vista Windows Server 2003 Windows XP
| No | Yes | Microsoft provides a useful tool for checking INF file structure and syntax called ChkINF. ChkINF is a Perl script that checks the structure and syntax of Microsoft Windows 2000, Windows XP and Windows Server 2003 driver INF files. Results are presented in HTML format and include a list of the errors and warnings that are detected in each INF file, with each error and warning shown next to the errant INF file entry. ChkINF is available in the Windows Driver Kit (WDK) in the tools\chkinf directory. This tool is also included in the Hardware Compatibility Test (HCT) Kits used for Designed for Windows Logo testing. Note ChkINF will produce a number of warnings that are related to unreferenced sections in the INFs when run on the sample INFs. This behavior is expected because they all contain install sections for more than one processor architecture. Please refer to the ChkINF documentation for more information. |
| Sample name | Build environment | Target operating system | PnP driver | In-box driver | Sample description |
| 1394 Diagnostic Tools | Windows Vista Windows Server 2003 Windows XP
| Windows Vista Windows Server 2003 Windows XP
| No | No | This document and the associated source code describe how to interact with the Microsoft Windows Driver Model (WDM) 1394 stack. The 1394 Diagnostic Tools consist of two sample WDM Drivers (1394vdev.sys and 1394diag.sys), an API that interfaces to those drivers (1394api.dll), and a user-mode application that allows access to the interfaces of the sample driver. |
| 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. |
| Cancel - Demonstrates Usage of IoCsq Functions | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | No | The Cancel sample demonstrates the use of the cancel-safe queue (IoCsqInitialize, IoCsqInsertIrp, IoCsqRemoveIrp, and IoCsqRemoveNextIrp) APIs that were introduced in Windows XP for queuing IRPs in the driver's internal device queue. |
| 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. |
| Event - Kernel to User Notification | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | No | The Event sample is a legacy style (non-WDM) sample that demonstrates two different ways that a Microsoft Windows NT kernel-mode driver can notify an application about a hardware event. One is an event-based method and the other is an IRP-based method. Because the sample driver is not talking to any real hardware, it uses a timer DPC to simulate hardware events. The test application informs the driver whether it wants to be notified by signaling an event or by completing the pending IRP and also gives a relative time at which the DPC timer has to fire. |
| 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. |
| 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 2000–style 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. |
| IOCTL - How to Handle Different IOCTLs | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | No | The IOCTL sample demonstrates the usage of four different types of IOCTLs (METHOD_IN_DIRECT, METHOD_OUT_DIRECT, METHOD_NEITHER, and METHOD_BUFFERED) that are supported by the Microsoft Windows operating systems and how the user input and output buffer that is specified in the DeviceControl function is handled by the I/O subsystem and the driver in each case. |
| 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. |
| 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. |
| PortIO - How to read & write to I/O ports | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | No | This generic port I/O device driver sample shows how to reserve I/O ports for a non Plug and Play (PnP) device with an INF file, and how to read and write to the device from a user application. |
| 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. |
| 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. |
| Toaster | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | No | The Toaster sample provides a starting point for Microsoft Windows driver development. This sample contains annotated code to illustrate the functionality of a bus driver; a function driver; assorted class, device, and bus filter drivers; a class installer; and a device-specific co-installer for a hypothetical Toaster bus and its devices. |
| 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. |
| USB Bulk Transfer Driver Sample | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | Yes | The BulkUSB driver sample is a generic function driver based on the Microsoft Windows Driver Model (WDM). This sample supports Plug and Play (PnP), Power Management (PM), Windows Management Instrumentation (WMI), and the selective suspend (SS) features. This sample is based off the selSusp Windows Driver Kit (WDK) sample. For more information about how to handle PnP, PM, WMI, and SS features and implementations, see the selSusp sample and the WDK documentation. The USB device that is used for this sample is a generic Intel I82930 USB evaluation board that is programmed with a simple loopback test by using a 64 KB circular buffer. None of the code in the sample is specific to this controller chip. The Bulkusb.sys driver is a minidriver that transfers asynchronous bulk data packets to and from this board. The USB Request Blocks (URBs) allow an abstracted chip-independent transfer to and from the core USB stack. The sample also consists of a console application. |
| USB ISO Transfer Driver Sample | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | No | The Isousb sample driver is a function driver that is based on the Microsoft Windows Driver Model (WDM). This sample driver supports Plug and Play(PnP), power management, Windows Management Instrumentation (WMI), and the Selective Suspend (SS) features. This sample is based on the selSusp sample in the Windows Driver Kit (WDK). For more information about how to handle PnP, power management, WMI, and SS features and implementations, see the selSusp sample and the WDK documentation. The USB device that this sample uses is a generic Intel I82930 USB evaluation board that is programmed with a simple loopback test that uses a 64KB circular buffer. The code in the sample is not specific to this controller chip. |
| USBVIEW Sample Application | Windows Vista Windows Server 2003 Windows XP Windows 2000
| Windows Vista Windows Server 2003 Windows XP Windows 2000
| No | No | Usbview.exe is a Windows graphical user interface (GUI) application that allows you to browse all USB controllers and connected USB devices on your computer. The left pane in the main application window displays a connection-oriented tree view, and the right pane displays the USB data structures that pertain to the selected USB device (such as the Device, Configuration, Interface, and Endpoint Descriptors) and the current device configuration. The Usbview.exe sample demonstrates how a user-mode application can enumerate USB host controllers, USB hubs, and attached USB devices and can query information about the devices from the registry and through USB requests to the devices. The I/O control code (IOCTL) calls (see the Usbioctl.h system include file) that are demonstrated by this sample include: - IOCTL_GET_HCD_DRIVERKEY_NAME
- IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION
- IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME
- IOCTL_USB_GET_NODE_CONNECTION_INFORMATION
- IOCTL_USB_GET_NODE_CONNECTION_NAME
- IOCTL_USB_GET_NODE_INFORMATION
- IOCTL_USB_GET_ROOT_HUB_NAME
|
| WMIACPI | Windows Vista Windows Server 2003 Windows XP
| Windows Vista Windows Server 2003 Windows XP
| No | No | The WMIACPI sample contains ACPI BIOS and Microsoft Windows Management Instrumentation (WMI) sample code that enables instrumentation of the ACPI BIOS from within ACPI Source Language (ASL) code. ASL code can expose data blocks, methods, and events through WMI by leveraging the ACPI-WMI mapping driver (Wmiacpi.sys). |