Windows Driver Kit (WDK) Version 7.1.0 Release NotesSupporting Windows 7, Windows Vista, Windows XP, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003
The Microsoft Windows Driver Kit (WDK) Version 7.1.0 is an update of the WDK 7.0.0 release and 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. On This Page
WDK Version 7.1.0 Changes and IssuesThis 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
Redistributable Change: Update to offreg.dll Build Environment Changes
Sample Changes and Issues
Update to Sensor Adapter Test Suite RTM Release Notes[RTM Version 7.0.0] License Information[RTM Version 7.0.0] End User License Agreement The contents included in the Windows Driver Kit (WDK) are licensed to you, the end user. Your use of the WDK is subject to the terms of an End User License Agreement (EULA) that accompanies the WDK and is 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. [RTM Version 7.0.0] Active Perl The Windows Driver Kit contains Active Perl. For more information about ActiveState Corporation's Active Perl, see the [RTM Version 7.0.0] Installation InformationComplete information about WDK installation can be found in the Installation Guide. [RTM Version 7.0.0] Installation Information [RTM Version 7.0.0] IA64 is not supported as an installation platform [RTM Version 7.0.0] Debugger Installation If you install the Windows Debugger by 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:
[RTM Version 7.0.0] 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. [RTM Version 7.0.0] 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.0.0.
Issue: On Windows Vista with no service packs installed, the installation can fail and the device will not work when installing WinUSB2. Workaround: To mitigate the problem, install the Microsoft Knowledge Base fixes 949939 and 937287, or update your system to Vista with Service Pack 1 (SP1) or Vista SP2. [RTM Version 7.0.0] WDK Build Environment Changes and IssuesThis section contains information about the changes that have been made to the Build Environment since the WDK for Server 2008 (6001.18002). [RTM Version 7.0.0] 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. [RTM Version 7.0.0] KMDF and UMDF Version Macros changed The macros to indicate KMDF and UMDF versions have changed syntax. For Windows 7, the old syntax produces a warning.
[RTM Version 7.0.0] Microsoft Auto Code Review (OACR) added Microsoft Auto Code Review tools (OACR) have been added to the WDK Build Environment. OACR starts automatically when a WDK Build Environment window is opened. It runs in the background and runs PreFast for Drivers (PFD) after every build. An icon in the taskbar indicates if the build contains PFD errors and warnings. For more information about OACR, see the WDK documentation. [RTM Version 7.0.0] Changes to code signing tools Signtool has been updated with the following changes:
[RTM Version 7.0.0] 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. [RTM Version 7.0.0] Header files added and removed The following headers were included in the WDK for Server 2008 (6001.18002), but are not included in this release:
The following DDK header files have been added to the WDK:
[RTM Version 7.0.0] KMDF/UMDF Version 1.9 KMDF and UMDF have been updated to version 1.9. Changes include the following:
KMDF continues to support execution on Windows 2000 and later systems. UMDF supports execution on Windows XP and later systems. For more information, see the WDK documentation. [RTM Version 7.0.0] KMDF filter driver for HID device may fail to send I/O Issue: For filter drivers, the I/O type information that is used by WDFIOTARGET objects and created before the device is started, might not match the I/O type information of the target device object that is represented by the iotarget object. As a result, when the filter driver formats the request, the underlying IRP might get formatted incorrectly. Currently the problem occurs 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 targets and other WDFIOTARGET objects that are created by the driver in EvtDriverDeviceAdd callback. Workaround: To work around this problem, create an I/O target in the EvtDeviceSelfManagedIoInit() callback instead of the EvtDriverDeviceAdd() callback to the lower device object and use it. The following sample code is provided: [RTM Version 7.0.0] Redistributable Changes and IssuesThis section contains information about the changes that have been made to the redistributable files since the WDK for Server 2008 (6001.18002). [RTM Version 7.0.0] 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. [RTM Version 7.0.0] WinUSB Co-installers Co-installers for WinUSB v2 have been added to the kit. [RTM Version 7.0.0] DIFx The DIFx redistributable files have been updated. [RTM Version 7.0.0] Offreg Offreg DLLs have been added. [RTM Version 7.0.0] Sample Changes and IssuesThis section contains information about the changes that have been made to the Samples since the WDK for Server 2008 (6001.18002). [RTM Version 7.0.0] 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. [RTM Version 7.0.0] Signing Sample The signing sample, Selfsign_example.cmd, has been moved from …\bin\selfsign to …\src\general\build\driversigning. [RTM Version 7.0.0] Samples added and removed The following samples were included in the WDK for Server 2008 (6001.18002), but are not included in this release:
The following samples have been added to the WDK:
Additional information about these samples can be found in the WDK Documentation, or in a file in the directory with the sample. [RTM Version 7.0.0] SWTuner Sample The SWTuner sample supports the following digital network types:
Main differentiation is the demodulator node type, which identifies the standard that is currently used. 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 tuner hardware-based scanning, registry key HardwareScanning=1 has to be set. The sample shows how to set up a scan thread that scans in 250khz steps from low to high frequency. The analog framework exposes 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 explains how to enhance a BDA tuner with PBDA interfaces, for example, eventing and MMI. Additionally, the Netop Tuner type uses 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: Debug Service: GPNV Service: CAS Service: MUX Service: DRM Service: Scanning/Tuning: GDDS: UserActivity: [RTM Version 7.0.0] 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 accumulates 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.
Workarounds:
[RTM Version 7.0.0] 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 maximum packet size of 512 bytes and then recompile the sample. [RTM Version 7.0.0] Memory leaks in Sensor driver samples Issue: There are memory leaks in the Sensor samples (both Sensor Skeleton and Time Sensor). These leaks occur one time per driver process (WUDFHost.exe) when the computer starts up. To fix these leaks, update the driver sample code as described in the workaround section. Note:
Workaround:
[RTM Version 7.0.0] Tool Changes and IssuesThis section contains information about the changes that have been made to the Tools since the WDK for Server 2008 (6001.18002). [RTM Version 7.0.0] Tools added and removed The following tools were included in the WDK for Server 2008 (6001.18002), but are not included in this release:
The following tools have been added to the WDK:
Additional information about how to use these tools is available in the WDK Documentation. [RTM Version 7.0.0] Improvements to PFD Improvements to PFD include the following:
[RTM Version 7.0.0] Improvements to Static Driver Verifier Improvements to Static Driver Verifier include the following:
[RTM Version 7.0.0] Permission denied exception during verification resulting in a Tool Error Issue: When an antivirus program is running and the driver source code directory is not excluded from runtime scanning, there are rare chances that SDV may abort verification with the "Sys_error("slam.bp: Permission denied") " exception. Workaround: Disable simultaneous access of the driver source code source tree, such as adding driver verification path in the antivirus exclude directories list. [RTM Version 7.0.0] 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:
August 2009 Release Notes[August 2009] Incorrect data type used in Sensor driver data fieldIssue: The Sensor Skeleton sample uses an incorrect data type for the following property: The correct data type is a Double (VT_R8) and not Float (VT_R4). Workaround: Replace the code in CSensorDDI::InitializeGpsSensor with the following: [August 2009] ATL Best Practice - Use the Visual Studio releaseATL is included in the WDK as a convenience for driver developers who need to create Windows applets for their drivers. ATL should not be used for software development beyond this scope. The ATL that is available through Visual Studio provides a more complete and current set of libraries and should be used for development of software and web applications. Visual C++ Express Edition is available for free from MSDN. [August 2009] Updates to Windows Portable Devices Samples Build Environments and Target Operating SystemsThe build environment and target operating system settings are incomplete for the Windows Portable Devices Samples. Refer to the following sections for the complete list. Sample name: Comprehensive WPD Sample Driver Build Environment:
Target Operating System:
Sample name: Windows Portable Devices Hello World Driver Build Environment:
Target Operating System:
Sample name: Windows Portable Devices Basic Hardware Driver Build Environment:
Target Operating System:
Sample name: Windows Portable Devices Multi-Transport Driver Build Environment:
Target Operating System:
Sample name: Windows Portable Devices Service Sample Driver Build Environment:
Target Operating System:
Additional Requirements for Windows XP: Windows Portable Devices binaries are not included with Windows XP. To enable drivers (built for Windows XP) to load, the Windows Media Format SDK 11 runtime must be installed. [August 2009] Incorrect device ID specified in installation instructions for WPDMultiTransportDriverIssue: The device ID that is specified for the Devcon.exe command line is incorrect for the Windows Portable Devices Multi-Transport Driver. As a result, the WpdMultiTransportDriver does not install properly. To properly install the driver, use the following updated instructions. Workaround: The installation instructions (with the corrected device ID highlighted) are as follows:
[August 2009] Potential compiler problem with 64-bit int-to-float conversionsIssue: The 64-bit compiler that is included with the WDK can potentially generate invalid assembly when performing optimized float to integer conversions. The generated assembly includes instructions that use source registers that are not supported for the instruction. To determine if your code has this issue, follow these steps:
Workaround: Option 1: Use a pair of pragmas to turn off optimizations for the affected functions. Example: Option 2: Declare the source variable that is involved in the conversion as 'volatile'. This may help the compiler avoid the problematic conversion, but is not guaranteed. [August 2009] Unicode Formatting and Parsing FunctionsIssue: The Windows 7 WDK has a known issue with the Unicode versions of the formatting and parsing functions that make up the Security Enhancements in the CRT.. These security enhancements cause incorrect results or AVs when code that is built for Windows 7 is run on Windows Vista or Windows Server 2008. For example, using Point-and-Print with a Windows 7 printer driver results in a driver that does not run correctly on Windows Vista or Windows Server 2008. Workaround: To avoid this AV, use the "non _S versions" (for example, swscanf instead of swscanf_s) with this version of the WDK any time the Unicode functions are being used and a target operating system earlier than Windows 7 is involved. [August 2009] WttLogCm.dll is not included in WDK installations of WDTFIssue: The platform-specific versions of WttLogCm.dll are not included when WDTF is installed by using the WDK. This .dll is required when you run WDTF scripts, such as Common_Scenario_Stress_With_IO.wsf. These scripts fail when they are run by using Cscript.exe, and the following error message appears: If you install WDTF by using the WLK, you will not encounter this problem. Workaround: To work around this problem, follow these steps:
See Also |