From Wikipedia, the free encyclopedia
«WDK» redirects here. For the ISO 639 code wdk, see Yarli language.
Windows Driver Kit
Developer(s) | Microsoft |
---|---|
Initial release | 1992; 33 years ago |
Stable release |
10.1.26100.2454 |
Operating system | Microsoft Windows |
Available in | English |
License | Proprietary commercial software |
Website | docs |
The Windows Driver Kit (WDK) is a software toolset from Microsoft that enables the development of device drivers for the Microsoft Windows platform.[2] It includes documentation, samples, build environments, and tools for driver developers.[3] A complete toolset for driver development also need the following: a compiler Visual Studio, Windows SDK, and Windows HLK.
Previously, the WDK was known as Device Development Kit (DDK)[4] for Windows 3.x and Windows 9x. It supported the development of VxD drivers. Later versions for Windows NT and Windows 98SE and ME were called Driver Development Kit (DDK)[5] 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.
Version | Build number | Release date | Supported Driver Model |
---|---|---|---|
Windows 3.0 DDK | 1990 | VxD | |
Windows 3.1 DDK | 1992 | VxD | |
Windows NT 3.1 DDK | 1993 | NTDM | |
Windows NT 3.5 DDK | 1994 | NTDM | |
Windows NT 3.51 DDK | 1025.1 | July 1995 | NTDM |
Windows 95 DDK | October 1995 | VxD | |
Windows 95 DDK a | June 1996 | VxD | |
Windows 95 DDK b | VxD | ||
Windows 95 DDK c (MSDN July 1998) | June 1998 | VxD | |
Windows NT DDK (for Windows NT Workstation 3.51) | July 1996 | NTDM | |
Windows NT DDK (for Windows NT Workstation 4.0) | 1381.1 | August 1996 | NTDM |
Windows 98 DDK | July 1998 | VxD, WDM? | |
Windows 98 SE DDK | May 1999 | VxD, WDM? | |
Windows 2000 DDK | 2195.1 | February 2000 | WDM |
Windows Me DDK | August 7, 2000 | VxD only | |
Windows XP Driver Development Kit (DDK) | 2600 | September 21, 2001 | WDM |
Windows XP SP1 Driver Development Kit (DDK) | 2600.1106 | November 14, 2002 | WDM |
Windows Server 2003 DDK | 3790 | April 9, 2003 | WDM |
Windows Server 2003 with Service Pack 1 DDK | 3790.1830 | April 6, 2005 | WDM |
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.[6]
Version | Build number | Release date | Develops drivers for | Visual Studio integration | Notes |
---|---|---|---|---|---|
Windows Driver Kit for Windows Vista | 6000 | November 29, 2006 | Windows Vista | — | — |
Windows Driver Kit – Server 2008 (x86, x64, ia64) | 6001.18000 | January 1, 2008 | Windows XP SP1 – Vista SP1, Windows Server 2000 SP4 – 2008 | — | — |
Windows Driver Kit – Server 2008 (x86, x64, ia64) | 6001.18001 | April 1, 2008 | — | — | — |
Windows Driver Kit – Server 2008 Release SP1 (x86, x64, i64) | 6001.18002 | December 8, 2008 | Windows XP SP1 – Vista SP1, Windows Server 2000 SP4 – 2008 SP1 | — | — |
Windows Driver Kit 7.0.0 | 7600.16385.0 | August 6, 2009 | Windows 7, Windows Server 2008 R2 | — | — |
Windows Driver Kit 7.1.0 | 7600.16385.1 | February 26, 2010 | Windows XP SP3 – 7, Windows Server 2003 SP1 – 2008 R2 | — | [7] |
Windows Driver Kit 8.0 | 8.59.25584 | August 15, 2012 | Windows 7 – 8, Windows Server 2008 R2 – 2012 | Visual Studio 2012 | Downloads before 8/17/2012 had a bug in WDF co-installer[8] |
Windows Driver Kit 8.1 | 8.100.26638 | September 16, 2013 | Windows 7 – 8.1, Windows Server 2008 R2 – 2012 R2 | Visual Studio 2013[9] | — |
Windows Driver Kit 8.1 Update | 8.100.26846 | August 20, 2014 | Windows 7 – 8.1 Update, Windows Server 2008 R2 – 2012 R2 | Visual Studio 2013 | — |
Windows Driver Kit 10, Version 1507 | 10.0.26639 | July 2015 | Windows 7 SP1 – 10 | Visual Studio 2015 RTM – Update 3 | — |
Windows Driver Kit 10, Version 1511 | 10.0.10586 | November 2015 | Windows 7 SP1 – 10 Version 1511 | Visual Studio 2015 Update 1 – 3 | Windows 10 November Update |
Windows Driver Kit 10, Version 1607 | 10.0.14393 | August 2016 | Windows 7 SP1 – 10 Version 1607 (Excludes Win10 Version 1507 & 1511) | Visual Studio 2015 Update 3 | Windows 10 Anniversary Update |
Windows Driver Kit 10, Version 1703 | 10.0.15063 | April 2017 | Windows 7 SP1 – 10 (Version 1607 & 1703 only), Windows Server 2008 R2 – 2016 | Visual Studio 2017 Ver.15.1 | Windows 10 Creators Update |
Windows Driver Kit 10, Version 1709 | 10.0.16299 | October 2017 | Visual Studio 2017 Ver.15.4 | Windows 10 Fall Creators Update | |
Windows Driver Kit 10, Version 1803 | 10.0.17134 | April 2018 | Windows 10 April 2018 Update | ||
Windows Driver Kit 10, Version 1809[10] | 10.0.17763 | October 2018 | Windows 10 October 2018 Update | ||
Windows Driver Kit 10, Version 1903 | 10.0.18362.1 | April 2019 | Windows 7 SP1 – 10 (Version 1607 to 1903), Windows Server 2008 R2 SP1 – 2019 | Visual Studio 2019 Ver.16 | Windows 10 May 2019 Update |
- Windows Driver Frameworks
- Windows Driver Model
- Windows Logo Kit
- ^ «Other WDK downloads». Microsoft Learn. Retrieved 2024-12-03.
- ^ Enrico Perla; Massimiliano Oldani (2010). A Guide to Kernel Exploitation; Attacking the Core. Elsevier Science. p. 277. ISBN 9781597494878.
- ^ 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.
- ^ README.TXT from Windows 3.1 Device Development Kit (DDK)
- ^ Bill Blunden (2009). The Rootkit Arsenal; Escape and Evasion. Jones & Bartlett Learning. p. 142. ISBN 9781449661229.
- ^ MSDN: Products Unavailable due to Java-related Settlement
- ^ [1] Windows Driver Kit Version 7.1.0
- ^ WDF co-installer issue
- ^ Kraig Brockschmidt (2014). Programming Windows Store Apps with HTML, CSS, and JavaScript. Pearson Education. p. 1002. ISBN 9780735695702.
- ^ 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.
Поделиться через
WDK используется для разработки, тестирования и развертывания драйверов для Windows. Последний общедоступный выпуск — WDK 10.0.26100.3323 (выпущен 14 марта 2025 г.).
- Вы можете установить и запустить этот WDK в Windows 7 и более поздних версиях.
- Этот комплект можно использовать для создания драйверов для Windows 10, Windows Server 2016 и более поздних версий клиентов и серверов.
Чтобы нацелиться на Windows 8.1, Windows 8 и Windows 7, установите более старую версию WDK и более раннюю версию Visual Studio на одном компьютере или на отдельном компьютере. Ссылки на старые комплекты см. в разделе «Другие загрузки WDK».
Присоединитесь к программе Windows Insider, чтобы получить сборки WDK Insider Preview. Инструкции по установке сборок предварительной оценки Windows см. в разделе «Установка предварительных версий пакета драйверов Windows(WDK)».
WDK NuGet package support
WDK доступен в виде пакета NuGet, начиная с версии 10.0.26100.1. Пользователи могут получать доступ к этим пакетам и использовать их непосредственно из nuget.org в Visual Studio. Пакет NuGet WDK предоставляет удобный способ получения и обновления WDK, а также управляет зависимостями, такими как пакет SDK, помогая сохранить цепочку инструментов разработки драйверов в актуальном состоянии. Дополнительные сведения см. в статье «Установка последней версии WDK с помощью NuGet».
Поддержка ARM64
Начиная с версии WDK 10.0.26100.1, WDK теперь поддерживает разработку, тестирование и развертывание драйверов на компьютерах ARM64. WDK/EWDK можно установить и запустить изначально на оборудовании ARM64. Кроме того, ранее поддерживаемая эмуляция драйверов x86 KMDF/UMDF2 на оборудовании ARM64 по-прежнему доступна. Кроме того, отладка и развертывание драйверов на целевом компьютере ARM64 теперь поддерживается на компьютерах узла ARM64 и x64. При установке WDK/EWDK на компьютерах ARM64 процесс автоматически определяет и устанавливает все необходимые зависимости, включая средства сборки, двоичные файлы и библиотеки.
Шаг 1. Установка Visual Studio 2022
Для WDK требуется Visual Studio. Дополнительные сведения о требованиях к системе для Visual Studio см. в разделе «Требования к системе Visual Studio 2022».
Следующие выпуски visual Studio 2022 поддерживают разработку драйверов для этого выпуска:
- Скачать Visual Studio Community 2022
- Скачивание Visual Studio Professional 2022
- Скачать Visual Studio Enterprise 2022
При установке Visual Studio 2022 выберите рабочую нагрузку «Разработка классических приложений на C++», а затем в разделе «Отдельные компоненты» добавьте:
- MSVC v143 — VS 2022 C++ ARM64/ARM64EC Spectre-mitigated libs (Latest)
- MSVC версии 143 — библиотеки C++ для VS 2022 под x64/x86 с защитой от Spectre (последний релиз)
- C++ ATL for latest v143 build tools with Spectre Mitigations (ARM64/ARM64EC)
- C++ ATL for latest v143 build tools with Spectre Mitigations (x86 & x64)
- C++ MFC for latest v143 build tools with Spectre Mitigations (ARM64/ARM64EC)
- MFC C++ для инструментов сборки версии v143 с защитой от Spectre (x86 и x64)
- Комплект драйверов Windows
Tip
Use the Search box to look for «64 latest spectre» (in English installations) or «64 latest» (in non-English installations) to quickly see these components.
Примечание.
Выбранная рабочая нагрузка Разработка для настольных ПК на C++ не устанавливает Windows SDK 10.0.26100.1.
Шаг 2. Установка пакета SDK
Установка Visual Studio не скачивает последнюю версию пакета SDK, используйте следующую ссылку для установки.
- Download the latest Windows SDK
Указанные ссылки для пакета SDK и WDK имеют соответствующие номера сборки, которые всегда требуются для совместной работы комплектов. Если вы решите установить собственную пару SDK/WDK, возможно, для другой версии Windows, убедитесь, что номера сборки соответствуют. Дополнительные сведения см. в разделе «Версионирование комплекта».
Шаг 3. Установка WDK
- скачать WDK 10.0.26100.3323
Начиная с версии 17.11.0, VSIX WDK входит в состав отдельного компонента в Visual Studio. Перед установкой WDK установщик проверяет, установлена ли совместимая версия VSIX. Если WDK VSIX не найден, пользователям будет предложено установить его. Чтобы установить VSIX WDK, запустите установщик Visual Studio, выберите Изменить, перейдите на вкладку отдельные компоненты, добавьте комплект драйверов Windows, а затем снова выберите Изменить.
Tip
Если вы не можете найти шаблоны проектов драйверов в Visual Studio, расширение WDK Visual Studio не было установлено должным образом. Чтобы устранить эту проблему, запустите Visual Studio Installer, выберите Изменить, добавьте комплект драйверов Windows на вкладке отдельных компонентов и выберите Изменить.
Enterprise WDK (EWDK)
В качестве альтернативы загрузке Visual Studio, пакета SDK и WDK можно скачать EWDK, которая является автономной автономной средой командной строки для создания драйверов. It includes Visual Studio Build Tools, the SDK, and the WDK.
Последняя общедоступная версия EWDK содержит средства сборки Visual Studio 2022 17.11.4 и набор инструментов MSVC версии 14.41
Для EWDK также требуется платформа .NET Framework версии 4.7.2. Дополнительные сведения о других требованиях к .NET Framework см. в системных требованиях .NET Framework.
- скачать EWDK 10.0.26100.3323 с помощью средств сборки Visual Studio
После скачивания ISO выполните следующие действия, чтобы настроить среду сборки:
- Mount the EWDK ISO from a drive volume. Network share paths aren’t currently supported.
- Запустите LaunchBuildEnv.cmd.
- В среде, созданной на шаге 2, введите SetupVSEnv и нажмите клавишу ВВОД.
- Запустите devenv.exe из той же среды, используя полный путь к файлу. Например:
"C:\Program Files\Microsoft Visual Studio\2022\%Community|Professional|Enterprise%\Common7\IDE\devenv.exe"
- When you’re done with the build environment, you might want to eject the ISO.
При необходимости можно использовать интерфейс Visual Studio с инструментами сборки, предоставляемыми в EWDK. Чтобы использовать интерфейс Visual Studio, убедитесь, что основная версия Visual Studio соответствует версии средств сборки Visual Studio в EWDK. Например, Visual Studio 2022 работает с EWDK, содержащим средства сборки VS17.X. Для получения списка номеров версий Visual Studio 2022 см. в разделе Visual Studio 2022 Releases.
Kit versioning
A full kit build string includes as its last two components, the build number and a QFE (Quick Fix Engineering) value. Например, 10.0.22621.2428 имеет номер сборки 22621 и значение QFE 2428.
Чтобы создать драйвер, номер сборки установки пакета SDK должен соответствовать номеру сборки установки WDK. The QFE values don’t need to match unless your driver uses functionality that is only available in the headers included with a later QFE.
Быстрый способ увидеть полную строку сборки для локально установленных комплектов — открыть параметры Windows (Win+I), перейти к Приложениям, затем Установленные приложения и в поле поиска ввести kit
. The full build string appears to the right of the kit name. If you navigate to C:\Program Files (x86)\Windows Kits\10\Include
, the QFE shown is hardcoded to .0
. Таким образом, имя каталога не является надежным способом проверки идентификатора QFE. При установке комплекта новая установка заменяет любую ранее существующую установку одного и того же номера сборки. When you install Visual Studio with the Desktop development with C++ workload, if the installation payload includes the Windows SDK, the right-hand Summary pane also shows a hardcoded .0
for QFE.
Примеры драйверов для Windows
Скачайте примеры драйверов одним из следующих способов:
- Перейдите на страницу примеров драйверов на GitHub, выберите Клонировать или скачать, а затем выберите Скачать ZIP.
- Скачайте расширение GitHub для Visual Studio и подключитесь к репозиториям GitHub.
- Просмотрите примеры драйверов на портале Microsoft Samples.
- Скачайте предварительную версию программы предварительной оценки WDK
- Скачивание предыдущих версий WDK
- Скачайте пакет средств для оценки и развертывания Windows (Windows ADK)
- Скачивание Windows HLK
- Скачайте средства отладки Windows (WinDbg)
- Скачивание пакетов символов Windows
См. также
- Требования к оборудованию Для Windows 11
- Установка WDK с помощью WinGet
- Узнайте, что нового в разработке драйверов
- Просмотр известных проблем
Updated for the Windows 10 Enterprise WDK.
I was recently loading up a test machine with the various Window Driver Kits (WDKs) so I could test some tools I have been working on. Even for someone who has been developing Windows drivers for a long time, the idiosyncrasies of the various kits and installing them can drive you nuts. To make things worse, I prefer to install the WDK’s in their own tree under a single WDK directory, rather than in the default location Microsoft chooses. I figured people might want a primer.
WDK | Visual Studio | Desktop(1) | Server(1) | Download | Sample Download |
---|---|---|---|---|---|
Windows 7 | None compiler in kit |
XP to 7 | 2003 to 2008 R2 | Download | In kit |
Windows 8(2) | VS2012 (pro or higher) | Vista to 8 | 2008 to 2012 | Download | Samples |
Windows 8.1 | VS2013 | 7 to 8.1 | 2008 R2 to 2012 R2 | Download | Samples |
Windows 10 | VS2015 | 7 to 10 | 2016 | Download | Samples |
Windows 10 Enterprise |
None compiler in kit |
7 to 10 | 2016 | Download | Samples |
Notes:
1. While the listed versions are supported as targets, remember that in most cases a driver written for older OS works fine on future systems. The rule is build for the earliest OS you wish to support.
2. The Windows 8 WDK is officially unsupported, but there are a lot of people still using it.
Windows 7 WDK
The install is pretty simple:
1. Download the ISO image
2. Burn the ISO to a DVD or mount it with a 3rd party ISO mounting tool
3. Run setup
4. Choose the components (typically build tools and debugger)
5. Specify the directory for the install
If you have already worked with a later WDK but not the older kits, then this kit has a number of surprises. This kit is standalone, you do not need an additional compiler, and if you want to install the Software Development Kit (SDK) you should do it in its own directory. This is the last kit that was not integrated with Visual Studio, instead it uses the BUILD command and SOURCES file to control and build drivers. If you haven’t used BUILD before take a look at my paper on the environment http://www.microsoft.com/whdc/driver/foundation/DrvDev_Intro.mspx
If you want to integrate the WDK with a copy of Visual Studio, take a look at DDKBuild available from http://www.hollistech.com/. DDKBuild allows you to invoke the build process inside the Visual Studio Integrated Development Environment. While there are other tools that integrate BUILD with Visual Studio out there, I prefer this one for the best documentation and since Mark Roddy was the original creator of the tool.
Windows 8 WDK
The install is as follows:
Standard Installation | Install in a non-standard directory |
1. Install Visual Studio 2012 2. Install Windows 8 WDK 3. Install Windows 8 SDK (optional) 4. Open VS2012 if there is a menu named DRIVER install worked |
1. Install Windows 8 WDK specifying the desired directory 2. Install Visual Studio 2012 3. From the control panel uninstall the WDK 4. Install Windows 8 WDK it will go where the first install put it 5. Install Windows 8 SDK (optional) this will go in the WDK directory 6. Open VS2012 if there is a menu named DRIVER install worked |
One other caveat on Windows 8 WDK, if you plan to install the Windows 8.1 WDK on the same system then the Static Driver Verifier will not work in either environment! This is a pain for those of us who have different clients using different environments, and prefer not to use virtual machines.
Windows 8.1 WDK
The install is as follows:
Standard Installation | Install in a non-standard directory |
1. Install Visual Studio 2013 2. Install Windows 8.1 WDK 3. Install Windows 8.1 SDK 4. Open VS2013 if there is a menu named DRIVER install worked |
1. Install Windows 8.1 WDK specifying the desired directory 2. Install Visual Studio 2013 3. From the control panel repair the WDK 4. Install Windows 8.1 SDK this will go in the WDK directory 5. Open VS2013 if there is a menu named DRIVER install worked |
As stated in the Windows 8 WDK, if you have VS2012 installed on the same system then the Static Driver Verifier will not work in either environment.
Windows 10 WDK
The Windows 10 WDK is the latest version of the kit. Installation is different than the previous kits:
Standard Installation | Install in a non-standard directory |
1. Start the install of VS2015 1.1. Select Custom install 1.2. Expand Universal Windows app development tools 1.3. Select Tools and Windows SDK 10.0.10069 1.4. Click Next to continue and follow the prompts to complete the installation 2. Install Windows SDK for Windows 10 3. Install Windows Driver Kit (WDK) 10 |
1. Install Windows SDK for Windows 10 choosing the install directory 2. Install Windows Driver Kit (WDK) 10 goes into the directory for the SDK 3. Start the install of VS2015 3.1. Select Custom install 3.2. Expand Universal Windows app development tools 3.3. Select Tools and Windows SDK 10.0.10069 3.4. Click Next to continue and follow the prompts to complete the installation 4. From the control panel repair the SDK 5. From the control panel repair the WDK |
To check if the WDK is correctly installed, try building a sample driver. An error (a common problem is complaining about not finding warning.h) indicates the install was not correct. Note: if you did not perform custom install steps correctly, from the control panel change the VS2015 to reflect the above requirements, and then repair the SDK and WDK.
Windows 10 Enterprise WDK
The Windows 10 WDK is a stripped down version of the kit. This kit has no GUI, you must use MsBuild command line actions to build drivers. Installation is quite different from the previous kits:
1.Open the downloaded ZIP file and extract the contents to the directory where you want the kit.
2.Run LaunchBuildEnv from an Administer CMD Window
Время на прочтение2 мин
Количество просмотров1.2K
Microsoft объявила, что улучшает упаковку драйверов Windows. Компания представила для них пакет NuGet WDK (Windows Driver Kit).
До сих пор WDK был доступен в виде файлов MSI (Microsoft Installer) или ISO. Теперь Microsoft объяснила преимущества NuGet. Так, пакет меньше по размеру, что сокращает время загрузки и установки; его можно переносить на разные машины и в разных средах; интегрировать с большими конвейерами CI/CD и системами контроля версий; наконец, он позволяет обеспечить гибкую модель выпуска WDK.
Microsoft также предоставила пошаговое руководство по установке WDK с помощью NuGet. Компания отмечает, что для этого необходимы Windows 11 и Visual Studio 2022.
Сначала требуется установить версию Visual Studio 2022 Community, Professional или Enterprise, загрузить инструменты Visual Studio и установить разработку рабочего стола на C++.
Для WDK требуется Visual Studio 2022 с инструментами сборки VS 2022 C++ и соответствующими компонентами библиотек VS 2022 C++ Spectre (последние версии) для каждой архитектуры.
После регистрации в Visual Studio нужно выбрать и установить следующие отдельные компоненты: MSVC V143 — библиотеки VS2022 C++ x64/x86 с защитой от Spectre (последнюю версию) и MSVC V143 — библиотеки VS2022 C++ ARM64 с защитой от Spectre (также последнюю версию).
Затем потребуется установить расширение WDK Visual Studio. Для этого в Visual Studio нужно выбрать «Расширения», «Управление расширениями», а затем «Visual Studio Marketplace», и найти «Комплект драйверов Windows», а затем — Visual Studio Windows Drivers Kit.
Также установить расширение Visual Studio Kit драйверов Windows можно по ссылке.
Ранее Microsoft напомнила пользователям о прекращении поддержки Windows 11 22H2 8 октября 2024 года. Речь идёт о версиях Windows 11 2H2 Home, Pro, Pro Education и Pro for Workstations, выпущенных 20 сентября 2022 года. Корпорация сообщила о необходимости обновления до версии 23H2.
19.05.2015, 22:46. Показов 37238. Ответов 17
Документация и загрузки для разработчика драйверов
Windows Internals, Part 1 (6th Edition)
ISBN-10: 0735648735 | ISBN-13: 978-0735648739
http://www.amazon.com/Windows-… 0735648735
Windows Internals, Part 2 (6th Edition)
ISBN-10: 0735665877 | ISBN-13: 978-0735665873
http://www.amazon.com/Windows-… y_b_text_y
Шестое издание популярной серии «Внутреннее устройство Microsoft Windows».
Первый том переведен на русский язык, если кто не в курсе.
Это, фактически, настольное руководство по операционной системе Windows, с
картинками, выкладками и наглядными экспериментами. Если вы считаете себя
системным программистом, но до сих пор не прочитали эту книгу, то вы
многое потеряли.
Windows Sysinternals
http://technet.microsoft.com/e… s/bb842062
Пакет системных утилит от Руссиновича, одного из авторов «Internals» и
очень уважаемого человека.
«Использование Microsoft Windows Driver Model» (Уолтер Они).
ISBN 978-5-91180-057-4, 0735618038; 2007 г.
http://www.ozon.ru/context/detail/id/3137491/
Одна из лучших (а может, самая лучшая) книг по драйверам.
Единственная известная мне книга по драйверам, в которой детально
разбирается тема обработки I/O и работа PnP-устройств.
«Программирование драйверов Windows» (В. Солдатов).
ISBN 978-5-9518-0328-3; 2009 г.
http://www.ozon.ru/context/detail/id/5030966/
Неплохая книга для начинающих, для общего развития вполне подойдет.
Driver Development Part 1: Introduction to Drivers
http://www.codeproject.com/Art… to-Drivers
Driver Development Part 2: Introduction to Implementing IOCTLs
http://www.codeproject.com/Art… o-Implemen
Driver Development Part 3: Introduction to driver contexts
http://www.codeproject.com/Art… o-driver-c
Driver Development Part 4: Introduction to device stacks
http://www.codeproject.com/Art… o-device-s
Driver Development Part 5: Introduction to the Transport Device Interface
http://www.codeproject.com/Art… o-the-Tran
Driver Development Part 6: Introduction to Display Drivers
http://www.codeproject.com/Art… to-Display
Цикл из шести статей, посвященных разработке драйверов.
Хорошее руководство для быстрого старта, рассматриваются некоторые
ключевые вопросы.
KmdTut (01.08.2004)
https://drive.google.com/file/… sp=sharing
Старый, но до сих пор во многом актуальный туториал, для новичков самое то.
Все примеры на ассемблере, но с комментариями и подробным разбором каждого абзаца.
«Windows 2000 Device Driver Book: a Guide for Programmers» (A. Baker, J. Lozano).
ISBN-10: 0130204315 | ISBN-13: 978-0130204318
http://www.amazon.com/Windows-… 0130204315
Очень солидная книга, хоть и старая.
Многие главы из этой книги впоследствии перекочевали в MSDN.
User-Mode Interactions: Guidelines for Kernel-Mode Drivers
https://drive.google.com/file/… sp=sharing
Common Driver Reliability Issues
https://drive.google.com/file/… sp=sharing
В этих документах описано, как следует строить взаимодействие драйвера с
юзермодным приложением, типовые ошибки, best practices и т.д.
Уязвимости в драйверах режима ядра для Windows
http://www.rsdn.ru/article/asm/driverholes.xml
Статья рассказывает о типовых и не очень ошибках, которые постоянно
допускаются разработчиками драйверов и которые позволяют эксплуатировать
драйвер «ненадлежащим образом», обходя систему безопасности Windows.
Handling IRPs: What Every Driver Writer Needs to Know
https://drive.google.com/file/… sp=sharing
В документе описывается обработка IRP (запросы ввода-вывода) и все,
что каждому разработчику драйверов полагается знать на этот счет.
Cancel Logic in Windows Drivers
https://drive.google.com/file/… sp=sharing
А здесь рассказывается, как отменять IRP и какие при этом могут быть проблемы.
Different ways of handling IRPs — cheat sheet (part 1 of 2)
http://support.microsoft.com/kb/320275/en
Different ways of handling IRPs — cheat sheet (part 2 of 2)
http://support.microsoft.com/kb/326315/en
«Роман» в двух частях об обработке IRP — создание синхронных и
асинхронных IRP, завершение IRP, отмена, постановка в очередь и т.д.
The Truth About Cancel — IRP Cancel Operations (Part I)
http://www.osronline.com/article.cfm?article=78
The Truth About Cancel — IRP Cancel Operations (Part II)
http://www.osronline.com/article.cfm?article=72
Еще одна «повесть» про отмену IRP и связанные с этим проблемы.
Flow of Control for Cancel-Safe IRP Queuing
https://drive.google.com/file/… sp=sharing
Здесь рассказывается, как работают cancel-safe-очереди (CSQ) и как с
их помощью можно избежать хлопот, связанных с синхронизацией отмены IRP.
Virtual address spaces
http://msdn.microsoft.com/en-u… 85%29.aspx
Memory Management: What Every Driver Writer Needs to Know
https://drive.google.com/file/… sp=sharing
Advances in Memory Management for Windows
https://drive.google.com/file/… sp=sharing
Memory Sizing Guidance for Windows 7
https://drive.google.com/file/… sp=sharing
Документация об устройстве памяти в Windows, а также о расширениях,
появившихся с выходом Windows Vista и Windows 7.
Master of the Obvious — MDLs are Lists that Describe Memory
http://www.osronline.com/article.cfm?id=423
Статья объясняет, что такое MDL и как им пользоваться (работа с памятью).
INFO: Tips for Windows NT Driver Developers — Things to Avoid
http://support.microsoft.com/kb/186775/en-us
Несколько десятков полезных советов, написанных в стиле «don’t do this».
Scheduling, Thread Context, and IRQL
https://drive.google.com/file/… sp=sharing
Locks, Deadlocks, and Synchronization
https://drive.google.com/file/… sp=sharing
Multiprocessor Considerations for Kernel-Mode Drivers
https://drive.google.com/file/… sp=sharing
Summary of Windows Synchronization Primitives
https://drive.google.com/file/… sp=sharing
Чрезвычайно полезные документы по основам синхронизации в ядре.
Здесь описаны все основные примитивы синхронизации Windows,
мультипроцессорность, уровни запросов прерываний (IRQL), упорядочивание
доступа к памяти, барьеры, volatile, блокировки и тому подобное.
Must read !
Device Installation Rules and Guidelines for Windows Vista
https://drive.google.com/file/… sp=sharing
Описаны основные рекомендации по созданию качественных драйверных
инсталляций для современных версий Windows, начиная с Vista.
Getting Started with Software Tracing in Windows Drivers
https://drive.google.com/file/… sp=sharing
Основы использования трассировки (WPP Tracing) в драйверах.
Kernel patch protection: frequently asked questions
http://msdn.microsoft.com/en-u… 85%29.aspx
Kernel Enhancements for Windows Vista and Windows Server 2008
https://drive.google.com/file/… sp=sharing
Kernel Data and Filtering Support for Windows Server 2008
https://drive.google.com/file/… sp=sharing
Supporting Systems That Have More Than 64 Processors
https://drive.google.com/file/… sp=sharing
Secured Boot and Measured Boot: Hardening Early Boot Components againist Malware
https://drive.google.com/file/… sp=sharing
Windows Display Driver Model Enhancements in Windows 8
https://drive.google.com/file/… sp=sharing
Early Launch Antimalware (ELAM)
https://drive.google.com/file/… sp=sharing
Сборник документов, описывающих различные новшества, пришедшие
вместе с Windows Vista, Windows 7 и Windows 8.
NT Design Workbook
https://drive.google.com/file/… sp=sharing
Внутреннее устройство архитектуры NT — процессы, каналы, оконные станции, объекты
ядра и многое другое. Составлено архитекторами NT, включая известного Д. Катлера.
Inside NT’s Asynchronous Procedure Call
http://www.drdobbs.com/inside-… /184416590
Windows Vista APC Internals
http://www.opening-windows.com… rnals2.htm
Статьи рассказывают про APC — известный, но малодокументированный механизм,
который может использоваться (и используется) для самых разных задач.
The Undocumented Functions (Microsoft Windows NT/2000)
http://undocumented.ntinternals.net/
Windows Vista Kernel Structures (nirsoft)
http://www.nirsoft.net/kernel_struct/vista/
Отличные ресурсы по недокументированным функциям и структурам NT.
Windows Hardware Development Central
http://msdn.microsoft.com/en-US/windows/hardware
Информационный центр разработчика драйверов, здесь есть много интересных
документов и загрузок. Всем интересующимся советую сразу заглянуть в архив:
Windows Hardware Dev Center Archive
http://msdn.microsoft.com/libr… e/dn550976
CodeMachine
http://www.codemachine.com
Сайт посвящен в основном различным недокументированным особенностям —
структуры и объекты ядра, адресное пространство, специфика x64, и т.п.
OSR Online
http://www.osronline.com/
«Второй MSDN». Здесь можно найти много интересного (а еще подписаться
на журнал «NT Insider»). Есть форум, где часто обсуждают интересные
технические вопросы и где мелькают известные личности из Microsoft.
Сайт системного разработчика
http://x64blog.name
В блоге есть полезная информация по различным фильтрующим драйверам и
всяким перехватчикам, в основном это файловые- и TDI-фильтры.
WASM.RU
www.wasm.ru/forum
RSDN
www.rsdn.ru
Форумы, на которых собирается практически вся программерская братия рунета.
Есть поиск и тематические разделы, в которых можно найти все что угодно,
было бы желание.
Документация Windows Driver Kit 8, собранная в файл chm
https://drive.google.com/file/… sp=sharing
Делал для себя, чтобы не таскать всякие гигабайтные установщики.
Windows Driver Kit Version 7.1.0
http://www.microsoft.com/en-us… x?id=11800
Пакет инструментов, заголовочных файлов и библиотек для разработчика драйверов.
Единственный на сегодняшний день пакет, позволяющий собирать драйверы для
всех современных версий Windows, начиная с XP и до новейших Windows 8.1.
x64 Debuggers And Tools — 6.12.2.633
https://drive.google.com/file/… sp=sharing
x86 Debuggers And Tools — 6.12.2.633
https://drive.google.com/file/… sp=sharing
x64 Debuggers and Tools — 6.3.9600.16384 — Windows 8.1
https://drive.google.com/file/… sp=sharing
x86 Debugger And Tools — 6.3.9600.16384 — Windows 8.1
https://drive.google.com/file/… sp=sharing
Пакет инструментов, также известный под общим названием WinDBG.
Незаменимое средство для отладки, анализа крэш-дампов, поиска проблем и прочих расследований.
Python extension for WinDbg
https://pykd.codeplex.com/
Расширение для WinDBG, позволяющее использовать скрипты на Python прямо в
консоли отладчика. Также имеет набор вспомогательных команд. Полезно для
автоматического разбора больших структур, написания сценариев отладки и т.д.
CodeMachine Debugger Extension DLL (CMKD.dll)
http://codemachine.com/tool_cmkd.html
Расширение для WinDBG, реализующее несколько полезных функций: работа с
ядерными структурами памяти (PTE и address space layout), разбор сетевых
пакетов и подробный stack trace, который, например, умеет показывать
информацию о stack unwinding, non-volatile регистры, а еще переданные в
каждую функцию аргументы, в том числе на x64.