Windows Driver Kit

Last updated
Windows Driver Kit
Developer(s) Microsoft
Initial release1992;30 years ago (1992)
Stable release
10.1 / November 1, 2015;6 years ago (2015-11-01)
Operating system Microsoft Windows
Available in English
License Proprietary commercial software
Website docs.microsoft.com/en-us/windows-hardware/drivers/index OOjs UI icon edit-ltr-progressive.svg

The Windows Driver Kit (WDK) is a software toolset from Microsoft that enables the development of device drivers for the Microsoft Windows platform. [1] It includes documentation, samples, build environments, and tools for driver developers. [2] A complete toolset for driver development also need the following: a compiler Visual Studio, Windows SDK, and Windows HLK.

Contents

History

Previously, the WDK was known as the Driver Development Kit (DDK) [3] and supported Windows Driver Model (WDM) development. It got its current name when Microsoft released Windows Vista and added the following previously separated tools to the kit: Installable File System Kit (IFS Kit), Driver Test Manager (DTM), though DTM was later renamed and removed from WDK again.

The DDK for Windows 2000 and earlier versions did not include a compiler; instead one had to install Visual C++ separately to compile drivers. From the version for Windows XP the DDK and later the WDK include a command-line compiler to compile drivers. One of the reasons Microsoft gave for including a compiler was that the quality of drivers would improve if they were compiled with the same version of the compiler that was used to compile Windows itself while Visual C++ is targeted to application development and has a different product cycle with more frequent changes. The WDK 8.x and later series goes back to require installing a matched version of Visual Studio separately, but this time the integration is more complete in that you can edit, build and debug the driver from within Visual Studio directly.

DDK versions

VersionBuild numberRelease date
Windows 3.0 DDK1990
Windows 3.1 DDK1992
Windows NT 3.1 DDK1993
Windows NT 3.5 DDK1994
Windows NT 3.51 DDK1025.1July 1995
Windows 95 DDKOctober 1995
Windows 95 DDK aJune 1996
Windows 95 DDK b
Windows 95 DDK c (MSDN July 1998)June 1998
Windows NT DDK (for Windows NT Workstation 3.51)July 1996
Windows NT DDK (for Windows NT Workstation 4.0)1381.1August 1996
Windows 98 DDKJuly 1998
Windows 98 SE DDKMay 1999
Windows 2000 DDK2195.1February 2000
Windows XP Driver Development Kit (DDK)2600September 21, 2001
Windows XP SP1 Driver Development Kit (DDK)2600.1106November 14, 2002
Windows Server 2003 DDK3790April 9, 2003
Windows Server 2003 with Service Pack 1 DDK3790.1830April 6, 2005

Note: Windows NT DDK, Windows 98 DDK and Windows 2000 DDK are no longer made available by Microsoft because of Java-related settlements made by Microsoft with Sun Microsystems. [4]

WDK versions

VersionBuild numberRelease dateDevelops drivers forVisual Studio integrationNotes
Windows Driver Kit for Windows Vista6000November 29, 2006Windows Vista--
Windows Driver Kit – Server 2008 (x86, x64, ia64)6001.18000Jan 2008Windows XP SP1 – Vista SP1, Windows Server 2000 SP4 – 2008--
Windows Driver Kit – Server 2008 (x86, x64, ia64)6001.18001April 1, 2008---
Windows Driver Kit – Server 2008 Release SP1 (x86, x64, i64)6001.18002December 8, 2008Windows XP SP1 – Vista SP1, Windows Server 2000 SP4 – 2008 SP1--
Windows Driver Kit 7.0.07600.16385.0August 6, 2009Windows 7, Windows Server 2008 R2--
Windows Driver Kit 7.1.07600.16385.1February 26, 2010Windows XP SP3 – 7, Windows Server 2003 SP1 – 2008 R2- [5]
Windows Driver Kit 8.08.59.25584August 15, 2012Windows 7 – 8, Windows Server 2008 R2 – 2012 Visual Studio 2012 Downloads before 8/17/2012 had a bug in WDF co-installer [6]
Windows Driver Kit 8.18.100.26638September 16, 2013Windows 7 – 8.1, Windows Server 2008 R2 – 2012 R2 Visual Studio 2013 [7] -
Windows Driver Kit 8.1 Update8.100.26846August 20, 2014Windows 7 – 8.1 Update, Windows Server 2008 R2 – 2012 R2 Visual Studio 2013 -
Windows Driver Kit 10, Version 150710.0.26639July 2015Windows 7 SP1 – 10 Visual Studio 2015 RTM – Update 3-
Windows Driver Kit 10, Version 151110.0.10586November 2015Windows 7 SP1 – 10 Version 1511 Visual Studio 2015 Update 1 – 3Windows 10 November Update
Windows Driver Kit 10, Version 160710.0.14393August 2016Windows 7 SP1 – 10 Version 1607 (Excludes Win10 Version 1507 & 1511) Visual Studio 2015 Update 3Windows 10 Anniversary Update
Windows Driver Kit 10, Version 170310.0.15063April 2017Windows 7 SP1 – 10 (Version 1607 & 1703 only), Windows Server 2008 R2 – 2016 Visual Studio 2017 Ver.15.1Windows 10 Creators Update
Windows Driver Kit 10, Version 170910.0.16299October 2017 Visual Studio 2017 Ver.15.4Windows 10 Fall Creators Update
Windows Driver Kit 10, Version 180310.0.17134April 2018Windows 10 April 2018 Update
Windows Driver Kit 10, Version 1809 [8] 10.0.17763October 2018Windows 10 October 2018 Update
Windows Driver Kit 10, Version 190310.0.18362.1April 2019Windows 7 SP1 – 10 (Version 1607 to 1903), Windows Server 2008 R2 SP1 – 2019 Visual Studio 2019 Ver.16Windows 10 May 2019 Update

See also

Related Research Articles

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

A software development kit (SDK) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific to a hardware platform and operating system combination. To create applications with advanced functionalities such as advertisements, push notifications, etc; most application software developers use specific software development kits.

Microsoft Visual C++ Integrated development environment product by Microsoft

Microsoft Visual C++ (MSVC) is a compiler for the C, C++ and C++/CX programming languages by Microsoft. MSVC is proprietary software; it was originally a standalone product but later became a part of Visual Studio and made available in both trialware and freeware forms. It features tools for developing and debugging C++ code, especially code written for the Windows API, DirectX and .NET.

JScript is Microsoft's legacy dialect of the ECMAScript standard that is used in Microsoft's Internet Explorer 11 and older.

A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on an Android smartphone is a cross compiler.

Microsoft XNA Freeware set of tools by Microsoft

Microsoft XNA is a freeware set of tools with a managed runtime environment that Microsoft developed to facilitate video game development. XNA is based on .NET Framework, with versions that run on Windows and Xbox 360. XNA Game Studio can help develop XNA games. The XNA toolset was announced on March 24, 2004, at the Game Developers Conference in San Jose, California. A first Community Technology Preview of XNA Build was released on March 14, 2006.

Windows Installer XML Toolset, is a free software toolset that builds Windows Installer packages from XML. It consists of a command-line environment that developers may integrate into their build processes to build MSI and MSM packages. WiX was the first Microsoft project to be released under an open-source license, the Common Public License. It was also the first Microsoft project to be hosted on an external website.

Microsoft Visual Studio Express Integrated development environment

Microsoft Visual Studio Express is a set of integrated development environments (IDEs) that Microsoft developed and released free of charge. They are function-limited version of the non-free Visual Studio and require mandatory registration. Express editions started with Visual Studio 2005.

Visual J++(pronounced "Jay Plus Plus") is Microsoft's discontinued implementation of Java. Syntax, keywords, and grammatical conventions were the same as Java's. It was introduced in 1996 and discontinued in January 2004, replaced to a certain extent by J# and C#.

WinDbg is a multipurpose debugger for the Microsoft Windows computer operating system, distributed by Microsoft. Debugging is the process of finding and resolving errors in a system; in computing it also includes exploring the internal operation of software as a help to development. It can be used to debug user mode applications, device drivers, and the operating system itself in kernel mode.

Microsoft Windows SDK, and its predecessors Platform SDK, and .NET Framework SDK, are software development kits (SDKs) from Microsoft that contain documentation, header files, libraries, samples and tools required to develop applications for Microsoft Windows and .NET Framework. Platform SDK specializes in developing applications for Windows 2000, XP and Windows Server 2003. .NET Framework SDK is dedicated to developing applications for .NET Framework 1.1 and .NET Framework 2.0. Windows SDK is the successor of the two and supports developing applications for Windows XP and later, as well as .NET Framework 3.0 and later.

In Microsoft Windows applications programming, OLE Automation is an inter-process communication mechanism created by Microsoft. It is based on a subset of Component Object Model (COM) that was intended for use by scripting languages – originally Visual Basic – but now is used by several languages on Windows. All automation objects are required to implement the IDispatch interface. It provides an infrastructure whereby applications called automation controllers can access and manipulate shared automation objects that are exported by other applications. It supersedes Dynamic Data Exchange (DDE), an older mechanism for applications to control one another. As with DDE, in OLE Automation the automation controller is the "client" and the application exporting the automation objects is the "server".

The Windows Hardware Lab Kit is a test automation framework provided by Microsoft to certify devices for Windows. Earlier similarly released frameworks were called Windows Hardware Certification Kit and Windows Logo Kit (WLK).

Borland C++ is a C and C++ IDE for MS-DOS and Microsoft Windows. It was the successor to Turbo C++ and included a better debugger, the Turbo Debugger, which was written in protected mode DOS.

Microsoft Build Engine, better known as MSBuild, is a free and open-source build tool set for managed code as well as native C++ code and was part of .NET Framework. Visual Studio depends on MSBuild, but not the vice versa. Visual Studio Application Lifecycle Management depends on MSBuild to perform team builds via Azure DevOps Server.

MonoDevelop Integrated development environment

MonoDevelop is an open-source integrated development environment for Linux, macOS, and Windows. Its primary focus is development of projects that use Mono and .NET Framework. MonoDevelop integrates features similar to those of NetBeans and Microsoft Visual Studio, such as automatic code completion, source control, a graphical user interface (GUI) and Web designer. MonoDevelop integrates a Gtk# GUI designer called Stetic. It supports Boo, C, C++, C#, CIL, D, F#, Java, Oxygene, Vala, JavaScript, TypeScript and Visual Basic.NET.

Visual Studio Tools for Office (VSTO) is a set of development tools available in the form of a Visual Studio add-in and a runtime that allows Microsoft Office 2003 and later versions of Office applications to host the .NET Framework Common Language Runtime (CLR) to expose their functionality via .NET.

Microsoft Visual Studio Code editor and IDE

Microsoft Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs, as well as websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms such as Windows API, Windows Forms, Windows Presentation Foundation, Windows Store and Microsoft Silverlight. It can produce both native code and managed code.

Turbo is a set of software products and services developed by the Code Systems Corporation for application virtualization, portable application creation, and digital distribution. Code Systems Corporation is an American corporation headquartered in Seattle, Washington, and is best known for its Turbo products that include Browser Sandbox, Turbo Studio, TurboServer, and Turbo.

Microsoft, a technology company historically known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled.

References

  1. Enrico Perla; Massimiliano Oldani (2010). A Guide to Kernel Exploitation; Attacking the Core. Elsevier Science. p. 277. ISBN   9781597494878.
  2. BHATT, PRAMOD CHANDRA P. (2019). AN INTRODUCTION TO OPERATING SYSTEMS : CONCEPTS AND PRACTICE (GNU/LINUX AND WINDOWS), FIFTH EDITION. PHI Learning Pvt. Ltd. p. 529. ISBN   9789387472884.
  3. Bill Blunden (2009). The Rootkit Arsenal; Escape and Evasion. Jones & Bartlett Learning. p. 142. ISBN   9781449661229.
  4. MSDN: Products Unavailable due to Java-related Settlement
  5. Windows Driver Kit Version 7.1.0
  6. WDF co-installer issue
  7. Kraig Brockschmidt (2014). Programming Windows Store Apps with HTML, CSS, and JavaScript. Pearson Education. p. 1002. ISBN   9780735695702.
  8. Liu, Zhifeng; Zheng, Desheng; Wu, Xinlong; Chen, Jixin; Tang, Xiaolan; Ran, Ziyong (2021). VABox: A Virtualization-Based Analysis Framework of Virtualization-Obfuscated Packed Executables. International Conference on Artificial Intelligence and Security. Springer International Publishing. pp. 73–84. ISBN   9783030786212. We use Visual Studio 2017 and WDK for Windows 10, version 1809 for development.