Looking for something specific?
Page Tag-Cloud
Software Tag-Cloud
Building from Source
Open Source Definition
All Software
  Popular Tags
C Plus Plus
Source Code
Notable Members
Our Company
Copyright Information
Software EULA
Pre-Release EULA
Privacy Policy
Make Contact
Windows Driver Kit 7.1.0
Downloads   0
User Rating   (Rate)
Last Updated   6/7/2022
License   Freeware
- Download -
View all Releases
Recommended Release
Version   7.1.0
Date   6/7/2022
Status   Antique Software which is highly out-of-date, released for educational/compatibility purposes.


Windows Driver Kit version 7.1.0 Release Notes

Supporting Windows 7, Windows Vista, Windows XP

Windows Server 2008 R2, Windows Server 2008, Windows Server 2003



Welcome to the Microsoft Windows Driver Kit (WDK) Version 7.1.0. This WDK contains a set of tools, code samples, documentation, compilers, headers, and libraries that driver developers can use to create drivers for Windows 7, Windows Vista, Windows XP, Windows Server 2008 R2, Windows Server 2008, and Windows Server 2003.

Each WDK has a version number to identify WDK releases. This version number changes with each service release. The first number will increase with each major Windows client operating system release. The second and third numbers will identify WDK service releases.

This is the first service release for WDK version 7. These release notes cover the changes that were made for this release as well as the changes that were in the WDK version 7.0.0.


Table of Contents

License Information

Installation Information

WDK Version 7.1.0 Changes and Issues

WDK Build Environment Changes and Issues

Redistributable Files Changes and Issues

Sample Changes and Issues

Tool Changes and Issues

Supplemental Release Notes


License Information


End User License Agreement

The contents included in the Windows Driver Kit are licensed to you, the end user. Your use of the WDK is subject to the terms of an End User License Agreement (EULA) accompanying the WDK and located in the WDK installation directory. The name of the file is license.rtf. Before you access or use the WDK, you must read and accept the terms of the EULA. If you do not agree to the terms of the EULA, you are not authorized to use the WDK.


Active Perl

The Windows Driver Kit contains Active Perl. For more information about ActiveState Corporation's Active Perl, see the ActiveState Web site.


Installation Information

Complete information about WDK installation can be found in the Installation Guide.



IA64 is not supported as an installation platform


Debugger Installation

If you install the Windows Debugger using Kitsetup, the debugger tool will be installed in a folder called Debuggers in the installation path that you selected. If you install the debugger tool along with other WDK components, they will all have the same root installation path.  If you do not want the debugger tool to be installed in the same root path as the other WDK components, you can do one of the following:

1.       Run the Debugger MSI on the media directly.

2.       Run Kitsetup, install ONLY the debugger, and choose an installation path for the Debugger. When you rerun Kitsetup to install the other WDK components, choose a different installation path for the other WDK components.


MSXML 6.0 required for the Mc.exe tool to run

The Message Compiler (Mc.exe) tool has a dependency on Microsoft Core XML Services (MSXML) 6.0 to run correctly. If you have the Windows Driver Kit installed on Windows XP with Service Pack 3 (SP3) or later versions of Windows, MSXML 6.0 is already installed. If you have the Windows Driver Kit installed on an earlier version of the Windows operating system, download MSXML 6.0. To download MSXML 6.0 services, go to the Microsoft Download Center Web site.


Kit Content Layout

By default, the WDK is installed to your local disk in the locations below. The default installation path for this WDK is C:\WinDDK\7600.16385.1.




WDK build tools


  Files used during debugging


WDK documentation


WDK headers


Import libraries


Microsoft Auto Code Review


Redistributable files


WDK samples


Development, Debug and Test tools


Windows Debugger


Possible installation problems with WinUSB on Vista RTM

Issue: On Windows Vista with no service packs installed, occasionally we have seen a problem.  When installing WinUSB2, it is possible the install will fail and the device will not work.

Workaround: To mitigate the problem install the KB fixes 949939 & 937287, or update your system to Vista SP1 or Vista SP2.



WDK Version 7.1.0 Changes and Issues

This section contains information about the changes to the WDK for the 7.1.0 refresh release.


Windows XP x64 is now supported as an installation platform


Debugger Changes

The Debugging Tools for Windows have been updated in this release of the WDK. The following changes were made:

·         Debugger Version changed to See the release notes in the debugger package for more information.

·         Updated ndiskd.dll

·         Miscellaneous bugfixes in UMDF and KMDF debugger extensions:

·         KMDF:

o    Ability to print more than 50 requests on a queue

o    !wdfdevice correctly displays FileObjectClass Name

o    Display if a request is cancelled if it is on the driver notified list

·         UMDF:

o    Correctly display a umirps cancel callback

o    Dump a devices Cleanup and Close callbacks

o    Display the file object associated with a request


Redistributable Change: Update to offreg.dll


Build Environment Changes

·         Updated MSVCRT.lib to fix driver crashes in Vista

·         Updated ws2_32.lib

·         Added ntddump.h

·         Added NPIV.mof

·         Added headers for Vista 7ip

·         Fixed annotations on I/O routines

·         Added wudftrace.ctl containing all umdf trace guids


Sample Changes and Issues

·         NDIS:

·         Xframeii: bugs fixed

·         Added NetVmini sample

·         Sensor skeleton sample: memory leak issues fixed

·         KMDF Toaster sample: bug fixed

·         WDM Event sample: bug fixed

·         Port I/O sample driver: There is a syntax issue in the file …\src\general\portio\sys\genport.inx that prevents the driver from being successfully installed on pre-Windows 7 systems. The workaround is to replace all occurrences of “PORTIO_Device” with “PortIO_Inst”.


Update to Sensor Adapter Test Suite


WDK Build Environment Changes and Issues

This section contains information about the changes to the Build Environment since the WDK for Server 2008 (6001.18002).


Windows 2000 Build Environment no longer supported

The libraries for Microsoft Windows 2000 have been removed from the WDK. _NT_Target_Version=$(NT_TARGET_VERSION_WIN2K) will result in an error. _NT_Target_Version must be Windows XP or a later version of Windows.


KMDF and UMDF Version Macros changed

The macros to indicate KMDF and UMDF versions have changed syntax. For Windows 7, the old syntax will produce a warning.






Microsoft Auto Code Review (OACR) added

Microsoft Auto Code Review tools (OACR) has been added to the WDK Build Environment. OACR will start automatically when a WDK Build Environment window is opened. It runs in the background and will run PreFast for Drivers (PFD) after every build. An icon in the taskbar will indicate if the build contains PFD errors and warnings. For more information on OACR, please see the WDK documentation.


Changes to code signing tools

Signtool has been updated with the following changes:

·         Removed dependency on CAPICOM

·         Supports SHA-2 digest algorithm use in signatures

·         Supports RFC 3161 timestamping when used on Windows 7

·         Fixes to the use of the /ac and /kp switches


ATL 2.1 and ATL 3.0 headers removed

The headers for ATL 2.1 and ATL 3.0 have been removed. ATL 7.1 headers have been moved from …\inc\crt\atl71 to …\inc\atl71. Changes were made to the build environment to use the ATL 7.1 header files in the new location. If your Sources file contains ATL_VER, the value should be 70 or 71.


Headers added and removed

The following headers were included in the WDK for Server 2008 (6001.18002), but are not included in this release:

·         DDK:

o    fsctlbuf.h

o    hvgdk.h

o    rdbss.h

o    rxassert.h

o    rxcommon.h

o    rxdebug.h

o    rxpooltg.h

o    smbus.h

·         API

o    dmmdiag.h

o    specstrings_adt.h

o    wincred.h


The following DDK headers have been added to the WDK:

·         DDK:

o    anchorsyncdeviceservice.h

o    bridgedeviceservice.h

o    calendardeviceservice.h

o    cifs.h

o    contactdeviceservice.h

o    deviceservices.h

o    dsm.h

o    fullenumsyncdeviceservice.h

o    hintsdeviceservice.h

o    messagedeviceservice.h

o    metadatadeviceservice.h

o    mpiodisk.h

o    mpiowmi.h

o    ndischimney.h

o    ndiswwan.h

o    notesdeviceservice.h

o    offreg.h

o    procgrp.h

o    ringtonedeviceservice.h

o    sensorsclassextension.h

o    statusdeviceservice.h

o    syncdeviceservice.h

o    taskdeviceservice.h

o    usbstorioctl.h

o    wwan.h

o   xpsrassvc.h

·         API:

o   audioapotypes.h

o   audioendpoints.h

o   audioendpoints.idl

o   d3d11tokenizedprogramformat.hpp

o   dxgiformat.h

o   functiondiscoveryerror.h

o   functiondiscoveryprovider.h

o   functiondiscoveryprovider.idl

o   functiondiscoveryproviderhelper.h

o   fwpvi.h

o   hvgdk.h

o   ime_cmodes.h

o   kernelspecs.h

o   lsalookup.h

o   lsalookupi.h

o   mmc.h

o   mshtmhst.h

o   mshtml.h

o   msopc.h

o   mxdc.h

o   objectarray.h

o   objectarray.idl

o   pbdaerrors.h

o   pmi.h

o   qosobjs.h

o   sal_supp.h

o   sdv_driverspecs.h

o   sensors.h

o   specstrings_supp.h

o   structuredquerycondition.h

o   structuredquerycondition.idl

o   usbrpmif.h

o   verrsrc.h

o   winbio.h

o   winbio_adapter.h

o   winbio_err.h

o   winbio_ioctl.h

o   winbio_types.h

o   wnnc.h

o   xpsobjectmodel.h

KMDF/UMDF Version 1.9

KMDF and UMDF have been updated to version 1.9. Changes include the following:

·         Guaranteed forward progress for KMDF drivers

·         Performance improvements in KMDF

·         Security hardening of the UMDF host process

·         Improvements in the UMDF PnP model

·         Ability to use KM drivers in the UM stack

KMDF continues to support execution on Windows 2000 SP4 and later systems. UMDF supports execution on Windows XP SP3 and later systems. For more information, see the Windows Hardware Developer Central (WHDC) website and the WDK documentation.


KMDF filter driver for HID device may fail to send I/O

Issue: For filter drivers, due to a bug in the framework, the I/O type information used by WDFIOTARGET objects - created before the device is started - may not match with the I/O type information of the target deviceobject represented by the iotarget object. As a result when the filter driver formats the request, the underlying IRP may get formatted incorrectly. Currently this bug manifest only if the filter driver is used for HID devices because HIDClass changes the I/O type of its device (PDO) during IRP_MN_START_DEVICE processing. This issue impacts default I/O target and other WDFIOTARGET objects created by the driver in EvtDriverDeviceAdd callback.

Workaround: The only workaround is to create an I/O target in EvtDeviceSelfManagedIoInit() callback instead of EvtDriverDeviceAdd() callback to the lower device object and use it. Sample code is given below:


                                   WdfDeviceWdmGetAttachedDevice (device));

    status = WdfIoTargetCreate(device,



    status = WdfIoTargetOpen(devExt->IoTarget, &openParams);


Redistributable Changes and Issues

This section contains information on the changes to the Redistributables since the WDK for Server 2008 (6001.18002).


WDF Co-installers

Co-installers for WDF version 1.9 are included. The co-installers for WDF version 1.7 have been removed. The WDF 1.9 co-installers are backward compatible with prior versions of WDF.


WinUSB Co-installers

Co-installers for WinUSB v2 have been added to the kit.



The DIFx redistributables have been updated.



Offreg DLLs have been added.


Sample Changes and Issues

This section contains information on the changes to the Samples since the WDK for Server 2008 (6001.18002).


Sample Folder Reorganization

The samples have been reorganized. The KMDF and UMDF samples have been moved into the folders for their appropriate device areas. Some of the WDM samples have been removed. Those that are still in the WDK can be found in the same location.


Signing Sample

The signing sample, Selfsign_example.cmd, has been moved from …\bin\selfsign to …\src\general\build\driversigning.


Samples added and removed

The following samples were included in the WDK for Server 2008 (6001.18002), but are not included in this release:

·         HID: Virtual HID (vhidmini.sys)

·         File System:

o    Filespy Filter

o    Mulnrx

o    Smbmrx

·         PnPI8042

·         Mouser

·         Kernel Samples:

o    AGP440

o    AGPlib

o    GAGP30KX

o    Radeon 8500 Sample Driver

o    UAGP35

·         MCA Management Application

·         Network:


o    IRDA

o    E100BEX

o    NDIS Connection-less Protocol Driver

·         Storage:

o    Changer INF Samples

o    Tape Samples

o    I2O Miniport

·         Video: R200 Sample


The following samples have been added to the WDK:

·         1394: Hybrid (UMDF/KMDF) 1394VDEV driver

·         Audio: Mic Array

·         Biometric samples

·         Build.exe samples

·         Bus:

o    Virtual Serial Driver in UMDF

o    UMDF USB Fx2 sample updated to demonstrate continuous reader and power-policy owner

·         File System: Simrep Minifilter

·         General:

o    Performance Counters

o    RegFltr

o    PortIO sample converted to KMDF

o    UMDF version of Toastmon driver

o    UMDF version of toaster function driver

·         HID: EloMT

·         Input: Moufilter driver converted to KMDF

·         Network: Xframe II

·         Print: XPS Raster Filter

·         Sensors samples

·         Storage: Storport Miniports

·         WMI Sample

·         WPD:

o    WPD Basic Hardware Driver

o    WPD MultiTransport Driver

o    WPD Service Sample Driver


Additional information about these samples can be found in the WDK Documentation, or in a file in the directory with the sample.


SWTuner Sample

The SWTuner sample support the digital network types:









Main differentiation is the demodulator node type, which identifies the used standard.

The framework exposes all necessary BDA definitions for the KS Proxy to control tuner and demodulator parameters.

However the SWTuner internally process only the frequency to select a transport stream that is streamed from HDD.

Enhancements in the PAL/Secam Tuner show how to implement Exhaustive Scanning for analog TV. To enable the tuner hardware based scanning the registry key HardwareScanning=1 have to be set. The sample show how to setup a scan thread that scan in 250khz steps from low to high frequency.

The analog framework expose the filters tuner, audio, crossbar, capture and encoder.

Enhancement for DVB-S show how to implement DiSEqC into the tuning.


PBDA interfaces are incorporated for the DVB-S sample. This explain how to enhanced a BDA tuner with PBDA interfaces, e.g. eventing and MMI.

Further the Netop Tuner type use the full PBDA schema and implements all possible PBDA interfaces such as the following services. The Netop Tuner is adjusted as DVB-T network type in the GPNV value Source Types.

Eventing Service:

Eventing manager that handle the transfer of queued events to the PBDA User mode ESEvents

Debug Service:

Manage to queue debug messages to user mode.

GPNV Service:

Implementation of necessary Name values, that show the basic use for a operation, setup and MMI

A real tuner shall not set the variables Device Id and Tuner Id and instead store the values persistent for the tuner.

CAS Service:

The implementation show the use of MMI's for the Diagnostic and Setup page. Broadcast MMI's are shown

with the change of a channel.

MUX Service:

The service transfer PID mapping information, which allows to control transport stream mapping and

identification of the current selected service. A PBDA tuner can control his own demultiplexer and shall map all PID's to the output transport stream (if the hardware cannot deliver a full mpeg2 transport stream).

DRM Service:

Entry points for all DRM related functions.


Scanning the frequency range and set/get the tuning parameters with xml tuning parameters. Tuners can use the scanning to scan from low to high frequency and determine the modulation parameters. These parameters are read every time the tuner find a signal via PBDA_Tuning_GetTunerState.


Loading the PBDA services and there tuning parameters, interface to load guide data. Note that only if the data type is PBDA_GUIDE_DATATYPE services and guide data is loaded via GDDS, in all other cases the services and guide data is determinate by inband transport stream data.


Interfaces for this PBDA service


Memory leaks in Portable Devices (WPD) Driver Samples

Issue: The following application scenarios result in memory leaks in the driver. As a result, memory usage will accumulate in the WUDFHost.exe process until the driver shuts down.

To fix these leaks, update the driver sample code as described in the workaround section.

1.    During object enumeration, the enumerator context is not released in WpdObjectEnumerator::OnFindNext. Affects: WpdHelloWorldDriver, WpdMultiTransportDriver, WpdBasicHardwareDriver, WpdServicesSampleDriver

2.    During object deletion, the destructors for the fake content object(s) are not called before deleting their references from the m_Content array. Affects: WpdWudfSampleDriver

3.    In WpdObjectResources::OnClose, an additional reference to the resource context is not released. Affects: WpdWudfSampleDriver


1.  1. In WpdObjectEnum.cpp, SAFE_RELEASE pEnumeratorContext before WpdObjectEnumerator::OnFindNext() returns.  For example:
    return hr;

2.    2. In WpdWudfSampleDriver\FakeDevice.h, RemoveObjectsMarkedForDeletion(), delete the FakeContent object before removing its reference from the m_Content array.  For example:
            if (m_Content[Index - 1]->MarkedForDeletion == TRUE)
                // Delete this object
                FakeContent* pContent = m_Content[Index - 1];
                m_Content.RemoveAt(Index - 1);
                delete pContent;
3. In WpdWudfSampleDriver\WpdObjectResources.cpp, SAFE_RELEASE pContext before WpdObjectResources::OnClose() returns.  For example:
    //Free the context
    if (hr == S_OK)
        hr = DestroyResourceContext(pContextMap, pszContext);

DSF: Incorrectly configured bulk endpoints in the Loopback sample

Issue: Per the USB 2.0 specification, bulk endpoints can have a maximum packet size of 512 bytes. The endpoint descriptors of the bulk endpoints in the DSF Loopback sample are incorrectly configured to be 1024 bytes.

Workaround: In src/test/dsf/usb/softusbloopback/LoopbackDevice.cpp, in CLoopbackDevice::ConfigureINEndpoint and ConfigureOUTEndpoint, set the endpoint descriptors as bulk endpoints with a max packet size of 512 bytes and recompile the sample.


Memory leaks in Sensor driver samples

This Issue has been fixed in WDK 7.1.0: There are memory leaks in the Sensor samples in WDK 7.0.0

Issue: There are memory leaks in the Sensor samples (both Sensor Skeleton and Time Sensor). These leaks occur once per driver process (WUDFHost.exe) on startup.

To fix these leaks, update the driver sample code as described in the workaround section.


1.    The Sensor Skeleton Sample needs all below mentioned workarounds

2.    The Time Sensor Sample needs only workarounds 1 & 2.


1.  1. In Device.cpp, SAFE_RELEASE pMyDevice before CMyDevice::CreateInstance returns.
CComPtr<IWDFDevice> spIWDFDevice;
if (SUCCEEDED(hr))
    // Create the IWDFDevice object
    hr = pDriver->CreateDevice(pDeviceInit, spCallback, &spIWDFDevice);
// Release the pMyDevice pointer when done. Note: UMDF holds a reference to it above

2.  2. In Queue.cpp, SAFE_RELEASE pMyQueue before CMyQueue::CreateInstance returns.
// Create the framework queue
CComPtr<IWDFIoQueue> spDefaultQueue;
hr = pWdfDevice->CreateIoQueue( spIUnknown,
       TRUE,                        // DefaultQueue
       WdfIoQueueDispatchParallel,  // Parallel queue handling
       FALSE,                       // PowerManaged
       TRUE,                        // AllowZeroLengthRequests
// Release the pMyQueue pointer when  done. Note: UMDF holds a reference to it above

3.  3. In Device.cpp, SAFE_RELEASE pSensorDdi before CMyDevice::OnPrepareHardware returns.
if (SUCCEEDED(hr))
     hr = m_pClassExtension->Initialize(pWdfDevice, spUnknown);
// Release the pSensorDdi pointer when done. Note: Sensor Class Extension holds a reference to it above


Tool Changes and Issues

This section contains information on the changes to the Tools since the WDK for Server 2008 (6001.18002).


Tools added and removed

The following tools were included in the WDK for Server 2008 (6001.18002), but are not included in this release:

·         Rpat.exe

·         AMCap2.exe

·         MCStream.exe

·         Nxdemo.exe


The following tools have been added to the WDK:

·         Biometrics – biotest.exe, WBDIDriverTest.exe

·         Bluetooth – sdpverify.exe

·         Driver Coverage – drvcov.exe

·         Enhanced Storage – EhStorCertMgrCmd.exe

·         Test Tools – IOSpyCmd.exe, IOAttack.exe

·         Networking – WwanDriverTestApp.exe

·         General – ComputerHardwareIds.exe

·         Print – XpsAnalyzer.exe


Additional information about the use of these tools is available in the WDK Documentation.


Improvements to PFD

Improvements to PFD include the following:

·         PFD now supports a broader range of expressions for analysis. For example: Const, Member names, ‘Side-effect-free’ C expressions.

·         Better annotation error checking.

·         Improved defect detection including “Banned API” checking.

·         PFD now generates warnings that help you prepare to analyze a driver with Static Driver Verifier. SDV requires drivers to have declarations that define the role of the driver-supplied callback functions. PFD will indicate when you need to add these Role type declarations to the driver code.


Improvements to Static Driver Verifier

Improvements to Static Driver Verifier include the following:

·         DV support for NDIS Miniport Drivers

·         An expanded set of rules for WDM and KMDF.

·         Role-type declarations

·         Driver Property Rules

·         Per Entry Verification 

·         Improved performance, scalability, and accuracy

Permission denied exception during verification resulting in a Tool Error

Issue: When antivirus is running and driver source code directory is not excluded from runtime scanning then there are rare chances that SDV may abort verification with the "Sys_error("slam.bp: Permission denied") " exception.

Workaround: Disable the simultaneous access of the driver source code source tree like adding driver verification path in antivirus exclude directories list.


Static Driver Verifier: Recommendations for troubleshooting

Issue: When you run Static Driver Verifier (SDV) on your driver source code and SDV reports Timeouts, GiveUps, or Spaceouts.

Workaround: If Static Driver Verifier (SDV) reports Timeouts, GiveUps, or Spaceouts, try the following actions:

1.    Run SDV using the /refine command option. For example:  staticdv /refine /rule:*
Note if SDV finds a NUR results during a run it will emit the exact command line to be used on the console in cyan. This command line includes a reference to a configuration file named refine.sdv which lists all rules that reported NURs. The command line will look like this
Staticdv /config:"refine.sdv" /refine
The following two recommendations require changes to the options file, sdv-defaults.xml. The default file is specific to the driver model and can be found in the \tools\sdv\data\model\ directory, where model is WDM, WDF, or NDIS.

2.    If your computer has a multi-core processor, reduce to 1 the number of threads that are used during verification. In the SDV defaults file, change the value for SDV_SlamConfig_NumberOfTheads to 1.

3.    If SDV reports Timeouts, increase the  Timeout limit. For example, double the value for SDV_SlamConfig_Timeout to 4000.

4.    Use all these techniques together, if none of them helps being applied alone
Note that these techniques increase the actual duration of a run, but they also make easier for SDV to finish its job with a useful result (Pass or Defect).


Supplemental Release Notes

Please visit the WHDC website to read any supplemental release notes not covered in this file.


Copyright © 2001-2010 Microsoft Corporation. All rights reserved.

Version: Thursday, February 4, 2010

Recent Releases:

 DDK    Downloads    Drivers    Windows  

No comments currently exists for this software. Why don't you add one?
First Previous Next Last 

Copyright © 2024 NetworkDLS.
All rights reserved.
Privacy Policy | Our Company | Contact