Windows driver kit visual studio 2015

The official Windows Driver Kit documentation sources - windows-driver-docs/other-wdk-downloads.md at staging · MicrosoftDocs/windows-driver-docs
title description keywords ms.date ms.custom

Previous WDK versions and other downloads

Install versions of the Windows Driver Kit (WDK), the Windows Debugger (WinDBG), and more.

Windows Driver Kit

previous versions

WDK

10/25/2021

19H1

Other WDK downloads

The Windows Driver Kit (WDK) is used to develop, test, and deploy Windows Drivers.
This topic contains information about earlier versions of the Windows Driver Kit (WDK),
Enterprise WDK (EWDK), and additional downloads for support purposes. To develop drivers,
use the latest public versions of the Windows Driver Kit (WDK) and tools, available for
download on Download the Windows Driver Kit (WDK).

To use these earlier versions, you must first install the version of
Visual Studio that is appropriate for your targeted platform.

Runtime requirements

You can run the Windows 10 WDK versions (including the WDK for Windows Server 2022) on Windows 7 and later, to develop drivers for the following operating systems:

Client OS Server OS
Windows 11, version 21H2 Windows Server 2022
Windows 10 Windows Server 2019, Windows Server 2016
Windows 8.1 Windows Server 2012 R2
Windows 8 Windows Server 2012
Windows 7 Windows Server 2008 R2 SP1

Step 1: Install Visual Studio

The WDK requires Visual Studio. For more information about system requirements for Visual Studio, see Visual Studio 2019 System Requirements.

[!NOTE]
Visual Studio 2022 is not supported by the Windows 11, version 21H2 WDK. To use Visual Studio 2022 to develop and test drivers, download the Windows 11, version 22H2 WDK. For details, see Download the Windows Driver Kit (WDK).

The following table indicates which Visual Studio version is required for the different releases of the WDK.

Targeted versions of Windows Edition(s) of Visual Studio
Windows 11, version 21H2
Windows Server 2022
Windows 10, version 2004
Windows 10, version 1903
Visual Studio Community 2019
Visual Studio Professional 2019
Visual Studio Enterprise 2019
Windows 10, version 1809
Windows 10, version 1803
Windows 10, version 1709
Visual Studio Community 2017
Visual Studio Professional 2017
Visual Studio Enterprise 2017
Windows 10, version 1703
Windows 10, version 1607
Visual Studio Express 2015 for Desktop
Visual Studio Community 2015
Visual Studio Professional 2015
Visual Studio Enterprise 2015
Windows 8.1 Update
Windows 8.1
Visual Studio 2013
Windows 8 Visual Studio Professional 2012
Visual Studio Ultimate 2012

Configure Visual Studio for Windows 11, version 21H2 and Windows 10, versions 1709, 1803, 1809, 1903, 2004, and Windows Server 2022

When you install Visual Studio, select the Desktop development with
C++
workload. The Windows 10 Software Development Kit (SDK) is
automatically included and is displayed in the right-hand Summary
pane.

To develop drivers for Arm/Arm64, choose Individual components and
under Compilers, build tools, and runtimes select Visual C++
compilers and libraries for Arm/Arm64
.

Install the Windows SDK to target Windows 10, versions 1607 and 1703

If your development targets systems that run Windows 10, version 1607 or Windows 10, version 1703, you should install Visual Studio 2015, and then also download and install the version of the Windows SDK for the targeted version of Windows 10, as identified in the following table.

Targeted versions of Windows Version of Windows SDK
Windows 10, version 1703 Windows SDK for Windows 10.0.15063.468
Windows 10, version 1607 Windows SDK for Windows 10.0.14393.795
Windows 8.1 Windows SDK for Windows 8.1
Windows 8 Windows SDK for Windows 8

The Windows SDK was not included in Visual Studio 2015, so you must install the SDK separately. Later versions of Visual Studio include the Windows SDK.

Step 2: Install the WDK

The WDK is integrated with Visual Studio and Debugging Tools for Windows
(WinDbg). This integrated environment gives you the tools you need to
develop, build, package, deploy, test, and debug drivers.

[!Note]
Starting with Windows 10, version 1709, installing the WDK
will by default install the WDK extensions for Visual Studio. These
extensions are required for integration of the WDK with Visual Studio.

Targeted versions of Windows WDK and related downloads
Windows 11, version 22H2 Download the Windows Driver Kit (WDK)
Windows 11, version 21H2 Windows 11, version 21H2 WDK
Windows Server 2022 WDK for Windows Server 2022
Windows 10, version 22H2
Windows 10, version 21H2
Windows 10, version 21H1
Windows 10, version 20H2
Windows 10, version 2004
WDK for Windows 10, version 2004
Windows 10, version 1909
Windows 10, version 1903
WDK for Windows 10, version 1903
Windows 10, version 1809
Windows Server 2019
WDK for Windows 10, version 1809
Windows 10, version 1803 WDK for Windows 10, version 1803
Windows 10, version 1709 WDK for Windows 10, version 1709
Windows 10, version 1703 WDK for Windows 10, version 1703
Windows 10, version 1607
Windows 10, version 1511
Windows 10, version 1507
Windows Server 2016
WDK for Windows 10, version 1607
Windows 8.1 Update WDK 8.1 Update (English only) — temporarily unavailable
WDK 8.1 Update Test Pack (English only) — temporarily unavailable
WDK 8.1 Samples
Windows 8 WDK 8 (English only)
WDK 8 redistributable components (English only)
WDK 8 Samples
Windows 7 WDK 7.1.0

[!NOTE]
Please review Hardware development kits for Windows 10, Version 2004 (10.19041.1), which addresses a bug with ExAllocatePoolZero.

[!IMPORTANT]
If you have installed the WDK for Windows 10, version 1703 on a system that had the WDK for Windows 10, version 1607 installed, some files from the earlier version of the WDK might have been removed. To restore these files:

  1. On the Start menu, enter Apps & features in the search box, and select Apps & features from the results.
  2. Find Windows Driver Kit — Windows 10.0.15063.0 in the list of Apps & Features, and then select the program.
  3. Select Modify, select Repair, and then follow the directions on the screen.
  4. The files will be restored.

Download previous versions of the EWDK

The Enterprise WDK (EWDK) is a standalone, self-contained, command-line environment for
building drivers and basic Win32 test applications. It includes the
Visual Studio Build Tools, the SDK, and the WDK. This environment
doesn’t include all the features available in Visual Studio, such as
the integrated development environment (IDE).

Using the EWDK requires .NET Framework 4.6.1. For more information about which systems run this version of the framework, see .NET Framework system requirements. For links to download the .NET Framework, see Install the .NET Framework for developers.

For more information about the EWDK, see
Using the Enterprise WDK.

Versions of Windows EWDK
Windows 11, version 21H2 Windows 11, version 21H2 EWDK
Windows Server 2022 EWDK for Windows Windows Server 2022
Windows 10, version 2004 EWDK for Windows 10, version 2004
Windows 10, version 1903 EWDK for Windows 10, version 1903
Windows 10, version 1809 EWDK for Windows 10, version 1809
Windows 10, version 1803 EWDK for Windows 10, version 1803
Windows 10, version 1709 EWDK for Visual Studio with Build Tools 15.6 (Recommended)
EWDK for Visual Studio with Build Tools 15.4
EWDK for Visual Studio with Build Tools 15.2
Windows 10, version 1703 EWDK for Windows 10, version 1703

[!Note]
Starting in Windows 10 version 1709, the EWDK is ISO-based. To get started, download and mount the ISO, and then run LaunchBuildEnv.

Optional: Install updated test certificates for HAL extensions

To work with HAL Extensions, prepare your development system, running Windows 10, version 1709 or a later version of Windows 10. Also install the WDK or the EWDK, and then install the updated version of the Windows OEM HAL Extension Test Cert 2017 (TEST ONLY), available for download as a ZIP file: HAL_Extension_Test_Cert_2017.zip.

For more information about using this updated certificate, see Update for «Windows OEM HAL Extension Test Cert 2017 (TEST ONLY)» test certificate on Windows Support.

Optional: Install WinDbg Preview

WinDbg Preview is a new version of WinDbg with more modern visuals, faster windows, a full-fledged scripting experience, built with the extensible debugger data model front and center. WinDbg Preview supports debugging every version of Windows 10.

For download links and more information about WinDbg Preview, see Download WinDbg Preview.

Standalone tools for debugging Windows XP and Windows Vista

If you’re debugging Windows XP, Windows Server 2003, Windows Vista, or
Windows Server 2008 (or using one of these operating systems to run
Debugging Tools for Windows), you need to use the Windows 7 release of
the debugging tools. It’s included in the SDK for Windows 7 and .NET
Framework 4.0.

[!IMPORTANT]
Newer versions of the Visual C++ 2010 Redistributable can cause
issues when you install the SDK for Windows 7.

Get the standalone debugging tools for Windows XP by first downloading
the Windows 7 SDK:
Microsoft Windows SDK for Windows 7 and .NET Framework 4.

To install the Debugging Tools for Windows as a standalone component,
start the SDK installer, and in the installation wizard, select
Debugging Tools for Windows, and clear all other components.

Related downloads

  • Download the Windows Assessment and Deployment Kit (Windows ADK)
  • Download the Windows HLK, HCK, or Logo Kit
  • Download the debugging Tools for Windows (WinDbg)
  • Download Windows Symbol Packages
  • Download the WDK Insider Preview

1. Обзор

После «WDK7600» Microsoft больше не будет предоставлять независимый комплект для разработки драйверов ядра, но сначала должна установить интегрированную среду разработки Microsoft VisualStudio, а затем загрузить интегрированный комплект для разработки WDK с официального веб-сайта Microsoft или автономного установочного пакета, но после установки Visual Studio интегрирует разработку, компиляцию, установку, развертывание и отладку драйверов, что упрощает разработку драйверов для Windows. Конфигурация переменных среды WDK для разработки драйверов Windows 10 и Visual Studio 2015 сильно отличается от конфигурации других версий среды Windows и WDK.

2. Модель вождения WDF

Драйвер устройства — это программный интерфейс, который соединяет аппаратное устройство с компьютерной системой, и для правильной работы в компьютерной системе любое устройство должно иметь соответствующий драйвер. Качество драйверов устройств напрямую связано с производительностью и стабильностью всей системы, поэтому очень важно проектировать и разрабатывать стабильные и эффективные драйверы.

Ранним драйвером устройства для Windows 95/98 был VxD (Virtual DeviceDriver), где x представляет определенный тип устройства. Начиная с Windows 2000, разработка драйверов должна основываться на WDM (Windows Driver Model). Однако, если вы используете DDK для разработки WDM, его разработка будет очень сложной. Вы не ожидаете, что это будет так же просто, как разработка приложений в пользовательском режиме. Пользователи используют сторонние инструменты, такие как WinDriver и DriverStudio. Чтобы улучшить эту ситуацию, начиная с Vista, Microsoft выпустила новую среду разработки драйверов WDF (Windows Driver Foundation). WDF (WindowsDriver Foundation) — это совершенно новая модель драйверов нового поколения, предложенная Microsoft. Она разработана на основе WDM (модель windowsDriver). Она поддерживает объектно-ориентированную разработку драйверов на основе событий и обеспечивает более высокий уровень, чем WDM. Абстрактный и очень гибкий, расширяемый и диагностируемый каркас драйвера. Инфраструктура WDF управляет большинством взаимодействий, связанных с операционной системой, реализует общие функции драйвера (такие как управление питанием, поддержка PnP), изолирует драйвер устройства от ядра операционной системы и уменьшает влияние драйвера на ядро.

WDF предоставляет две структуры: KMDF (Структура драйвера режима ядра) и UMDF (Структура драйвера режима пользователя).

1. Структура драйвера режима ядра (KMDF):

Такие драйверы выполняются как часть компонентов операционной системы режима ядра: они управляют вводом-выводом, подключением и воспроизведением, памятью, процессами и потоками, безопасностью и т. Д. Драйверы режима ядра обычно являются иерархическими. KMDF является основным драйвером системы Windows, а имя файла — * .SYS. Для получения дополнительной информации о KMDF, пожалуйста, обратитесь к разделу «Начало работы с Kernel-ModeDriver Framework» в MSDN.

2. Структура драйвера пользовательского режима UMDF (Структура драйвера пользовательского режима):

Такие драйверы обычно обеспечивают интерфейс между приложениями Win32 и драйверами режима ядра или другими компонентами операционной системы. Драйверы пользовательского режима поддерживают устройства на основе протоколов или последовательных шин (например, камеры и портативные музыкальные проигрыватели). UMDF — это драйвер уровня пользователя, имя файла — * .DLL. Дополнительные сведения о KMDF см. В разделе «Введение в UMDF» в MSDN.

Как драйвер режима ядра, так и драйвер пользовательского режима создаются с использованием одной и той же среды, которая называется WDK, все они построены с использованием одного и того же набора объектных моделей, и все они основаны на одной и той же основе. Эта основа — WDF. Поскольку модель драйвера WDF предоставляет объектно-ориентированную и управляемую событиями среду разработки драйверов, сложность разработки значительно уменьшается. Отныне разработчики, которые осваивают драйверы устройств Windows, в прошлом будут заменены «профессионалами» на «обычных» людей. Поэтому сторонние инструменты, такие как WinDriver и DriverStudio, также вышли из стадии истории. Что еще более важно, то, что Microsoft часто выставляет напоказ, — это то, что она включает в себя определенные общие поведения в драйвере: например, подключи и играй и управление питанием относятся к этому общему поведению. Поскольку большинству драйверов приходится иметь дело с проблемами plug-and-play и управления питанием, говорят, что это примерно тысяча строк кода, и не всегда возможно справиться с этим без значительного уровня. Раз и навсегда WDF просто инкапсулирует в объект управление по принципу «включай и работай» и управление питанием, и он становится поведением объекта по умолчанию (по умолчанию) одним махом. WDF отделяет драйвер от ядра операционной системы, а взаимодействие между драйвером и операционной системой передается методу (функции), инкапсулированному в платформу, так что разработчику драйвера необходимо сосредоточиться только на поведении оборудования. Это позволяет избежать не только недостатков обеих сторон, но также и из-за разделения этих двух сторон, определенные изменения в операционной системе и разработка вспомогательных драйверов для производителей оборудования имеют большие преимущества.

3. Пользовательский режим и режим ядра

Процессор в компьютере под управлением Windows имеет два разных режима: «режим пользователя» и «режим ядра». В зависимости от типа кода, выполняемого на процессоре, процессор переключается между двумя режимами. Прикладные программы работают в пользовательском режиме, а основные компоненты операционной системы — в режиме ядра. Когда несколько драйверов работают в режиме ядра, некоторые драйверы могут работать в режиме пользователя.

Когда запускается приложение пользовательского режима, Windows создает «процесс» для приложения. Процесс предоставляет выделенное «виртуальное адресное пространство» и выделенную «таблицу дескрипторов» для приложения. Поскольку виртуальное адресное пространство приложения является выделенным пространством, одно приложение не может изменять данные, принадлежащие другим приложениям. Каждое приложение работает изолированно. Если приложение повреждено, ущерб будет ограничен этим приложением. Другие приложения и операционные системы не будут затронуты этим повреждением.

В дополнение к выделенному пространству, виртуальное адресное пространство приложений пользовательского режима также ограничено. Процессор, работающий в пользовательском режиме, не может получить доступ к виртуальному адресу, зарезервированному для операционной системы. Ограничение виртуального адресного пространства приложений пользовательского режима предотвращает изменения приложений и может повредить важные данные операционной системы.

Весь код, работающий в режиме ядра, использует одно виртуальное адресное пространство. Это означает, что драйвер режима ядра не зависит от других драйверов и самой операционной системы. Если драйвер режима ядра случайно пишет неправильный виртуальный адрес, данные, принадлежащие операционной системе или другим драйверам, могут быть повреждены. Если драйвер режима ядра поврежден, будет повреждена вся операционная система.

Эта диаграмма иллюстрирует связь между компонентами пользовательского режима и компонентами режима ядра.

4. Характеристика модели вождения

UMDF сильно отличается от традиционных драйверов. Короче говоря, UMDF выглядит так:

  • UMDF — это модуль драйвера, основанный на идее COM и работающий в пользовательском режиме (RING3).

Итак, какие изменения приносит эта модель вождения?

Во-первых, на основе идеи COM введение механизма интерфейса может организовать связанные функции в различные категории, чтобы прояснить код драйвера, во-вторых, драйвер, работающий на RING3, значительно снижает риск стабильности и безопасности драйвера. Сбои драйвера не вызовут баг-чек (синий экран), а хост-процесс драйвера UMDF выполняется с ограниченными правами пользователя, а не с доверенным модулем ядра системы. Вы можете использовать Win32 API в UMDF.

UMDF, работающий на RING3, предлагает программистам как минимум два дополнительных преимущества:

  • Драйвер не требует обязательной цифровой подписи, поскольку драйвер UMDF не является системным доверенным модулем, поэтому развертывание под x64 более удобно. Особенно, когда отдельные разработчики не могут позволить себе WHQL или если WQHL временно недоступен по другим причинам, использование UMDF является лучшим выбором.
  • Сложность отладки значительно снижена, и нет необходимости в отдельном отладчике ядра, таком как SoftICE и Syser, или отладке на двух компьютерах, например WinDBG. Мы можем использовать отладчик WinDBG или VS, чтобы подключиться к процессу хоста UMDF для отладки. Можно сослаться на отладку драйвера UMDF.

Ошибки в драйвере режима ядра KMDF повредят адресное пространство системы и могут вызвать сбой компьютера. Вследствие характеристик этих моделей драйверов среда разработки и отладки для создания программы драйвера также будет отличаться.В общем случае при разработке и отладке драйвера KMDF выбираются две машины или среда виртуальной машины, и драйвер UMDF можно использовать для отладки одной машины. Следующая конструкция среды в основном использует более сложную модель KMDF в качестве примера.

5. Конфигурация среды разработки и отладки

5.1 Инструменты и среда платформы

Платформа: операционная система Windows 10

Среда разработки: Visual Studio 2015 Enterprise и Windows WDK, Windows SDK

Среда отладки: виртуальная машина Oracle VM VirtualBox 5.0.14

5.2 Методы / шаги

5.2.1 Настройка основного компьютера и тестового компьютера

Настройка целевого или тестового компьютера — это процесс настройки компьютера для автоматического развертывания, тестирования и отладки драйверов. Среда тестирования и отладки имеет два компьютера: хост-компьютер и целевой компьютер. Целевой компьютер также называют «тестовым компьютером». Используйте Vsual Studio на хосте для разработки и сборки драйверов. Отладчик работает на главном компьютере (вы можете использовать пользовательский интерфейс Visual Studio или средство отладки WinDbg). При тестировании и отладке драйвера драйвер запускается на целевом компьютере.

1 Установите и настройте основной компьютер

В этой среде сборки основная операционная система компьютера использует win10, сначала установите Visual Studio 2015 Enterprise, а затем установите Wdk 10. Примечание: WDK10 должен быть установлен за vs2015. После завершения установки, меню драйвера появится в меню интерфейса после запуска vs2015, как показано ниже. Кроме того, как правило, VisualStudio 2015 Enterprise уже оснащен Windows SDK, но если он не совпадает с версией установленного WDK, рекомендуется установить Windows SDK 10 отдельно, чтобы обеспечить совместимость версий WDK и SDK.

2 Установите и настройте целевой компьютер

Целевой компьютер этого теста использует виртуальную машину Oracle VM VirtualBox 5.0.14. Сначала установите виртуальную машину Oracle VM VirtualBox5.0.14 на главном компьютере, а затем установите операционную систему win10 на виртуальной машине.

3 Хост-компьютер Unicom и целевой компьютер

Хост-компьютер и целевой компьютер должны иметь возможность пинговать друг друга по имени. Если два компьютера присоединились к одной рабочей группе или к одному сетевому домену, эта операция может быть проще.

Убедитесь, что хост и целевой компьютер могут пропинговать друг друга. Откройте окно командной строки и введите ping 192.168.X.X (ip_adress).

Если хост-компьютер и целевой компьютер присоединились к рабочей группе, но они находятся в разных подсетях, возможно, вам придется настроить определенные параметры брандмауэра, чтобы хост-компьютер и целевой компьютер могли обмениваться данными. Пожалуйста, следуйте инструкциям ниже:

Два метода (выберите один):

Способ первый:

В «Панели управления» на целевом компьютере перейдите в «Сеть и Интернет»> «Центр общего доступа к сети». Обратите внимание на вашу активную сеть. Это может быть «публичная сеть», «частная сеть» или «домен».

В «Панели управления» на целевом компьютере выберите «Система и безопасность»> «Брандмауэр Windows»> «Дополнительные настройки»> «Правила для входящих подключений».

В списке входящих правил найдите все правила обнаружения сети для активной сети. (Например, найдите все правила обнаружения сети, «профиль» которых «выделен».) Дважды щелкните каждое правило и откройте вкладку «Область». В разделе «Удаленный IP-адрес» выберите «Любой IP-адрес».

В списке входящих правил найдите все правила «Общий доступ к файлам и принтерам» для активной сети. Для каждого правила дважды щелкните правило, чтобы открыть вкладку Область. В разделе «Удаленный IP-адрес» выберите «Любой IP-адрес».

Способ второй:

«Панель управления» -> «Система и безопасность» -> «Брандмауэр Windows» -> «Включить или выключить брандмауэр Windows» -> «Отключить брандмауэр Windows»

4 Целевой компьютер позволяет отладку ядра

1) Используйте системную учетную запись администратора, чтобы открыть командное окно CMD на тестовом целевом компьютере, и введите следующую команду:

C:/> bcdedit /set {default} DEBUG YES

C:/> bcdedit /set TESTSIGNING ON

5.2.2 Настройка режима отладки WinDbg

Поскольку существует много способов отладки, мы выбираем для обсуждения два обычно используемых метода отладки последовательного порта и отладки сети. Сначала мы устанавливаем режим последовательного порта.

5.2.2.1 Установить тестовый целевой компьютер в качестве режима отладки последовательного порта

A. Установите последовательный порт на виртуальной машине

Сначала закройте операционную систему на виртуальной машине и установите ее на виртуальной машине. Для виртуальной машины в обычном VirtualBox соответствующий последовательный порт не включен по умолчанию, и конфигурация соответствует этому:

Установите последовательный порт как канал на хосте (канал является программной концепцией)

Как настроить:

  • В системе Windows: имя должно быть
  • Среди нихnameВыберите один самостоятельно (конечно, вы должны выбрать один, соответствующий вашей виртуальной машине, значимое имя)

Б. Настройте последовательную отладку на тестовом целевом компьютере.

Откройте командное окно CMD с учетной записью системного администратора на целевом тестовом компьютере и введите следующую команду:

C:/> bcdedit /debug on
C:/> bcdedit /dbgsettings serial debugport:1 baudrate:115200 

Среди них debugport: 1 означает выбор последовательного порта com1.

Затем перезапустите операционную систему, откройте командное окно CMD на тестовом целевом компьютере, введите следующую команду, вы увидите только что настроенные параметры:

C:/> bcdedit / bcdedit /dbgsettings

 

C. Запустите программу отладки WinDbg на главном компьютере.

Откройте командное окно CMD на главном компьютере и введите папку программы WinDbg, обычно по следующему пути:
C:/>cd C:/Program Files (x86)/Windows Kits/10/Debuggers/x64 
C:/> windbg -k com:pipe,port=//./pipe/vmbox,resets=0,reconnect
Программа Windbg работает нормально, и эффект заключается в следующем, что указывает на правильность конфигурации и возможность отладки драйвера через последовательный порт.

5.2.2.2 Установить тестовый целевой компьютер в качестве режима отладки сети

A. Настройте отладку сети на тестовом целевом компьютере.

Откройте командное окно CMD с учетной записью системного администратора на целевом тестовом компьютере и введите следующую команду:

C:/> bcdedit /debug on
C:/> bcdedit /dbgsettings net hostip:192.168.12.109 port:50000 key:1.2.3.4 

Среди них hostip: 192.168.12.109 представляет IP-адрес хост-компьютера, port: 50000 устанавливает порт связи, а параметр key указывает ключ шифрования, используемый для связи.

Затем перезапустите операционную систему, откройте командное окно CMD на тестовом целевом компьютере, введите следующую команду, вы увидите только что настроенные параметры:

C:/> bcdedit / bcdedit /dbgsettings

Б. Запустите программу отладки WinDbg на главном компьютере.

Откройте командное окно CMD на главном компьютере и введите папку программы WinDbg, обычно по следующему пути:
C:/>cd C:/Program Files (x86)/Windows Kits/10/Debuggers/x64 
C:/> WinDbg –k net:port=50000,key=1.2.3.4
Программа Windbg работает нормально, и эффект заключается в следующем, что указывает на правильность конфигурации и возможность отладки драйвера через последовательный порт.

5.2.3 Настройка режима отладки Visual Studio 2015

Visual Studio 2015 сама интегрирует разработку, компиляцию, установку, развертывание и отладку драйверов, что упрощает разработку драйверов для Windows. Существуют некоторые различия в конфигурации между Visual Studio 2015 в качестве интерфейса отладки и развертывания и использованием WinDbg в качестве интерфейса отладки.

5.2.3.1 Установить тестовый целевой компьютер в режим отладки последовательного порта

A. Установите последовательный порт на виртуальной машине

Сначала закройте операционную систему на виртуальной машине и установите ее на виртуальной машине. Для обычных виртуальных машин в VirtualBox соответствующий последовательный порт не включен по умолчанию.Для конфигурации см. Настройки последовательного порта в предыдущем разделе.

Б. Настройте последовательную отладку на тестовом целевом компьютере.

Откройте командное окно CMD с учетной записью системного администратора на целевом тестовом компьютере и введите следующую команду:

C:/> bcdedit /debug on
C:/> bcdedit /dbgsettings serial debugport:1 baudrate:115200 

Среди них debugport: 1 означает выбор последовательного порта com1.

Затем перезапустите операционную систему, откройте командное окно CMD на тестовом целевом компьютере, введите следующую команду, вы увидите только что настроенные параметры:

C:/> bcdedit / bcdedit /dbgsettings 

C. Установите тестовый целевой компьютер на WDKRemoteUser

На целевом компьютере запустите установочный файл MSI целевого теста тестирования, соответствующий целевой компьютерной платформе. MSI можно найти в каталоге установки WDK10 хост-компьютера, на котором был установлен WDK10.

Например: C: / Program Files (x86) / WindowsKits / 10 / Remote / x64 / WDK Test Target Setup x64-x64_en-us.msi

Примечание: Если программа не установлена, конфигурация, созданная в vs2015, не будет выполнена на следующем этапе. Я застрял на этом этапе в течение длительного времени и не мог найти причину.

D. установить на главном компьютереVisual Studio 2015программа

На главном компьютере в меню «Драйвер» Visual Studio выберите «Тест»> «Настроить устройство».

Нажмите Добавить новое устройство.

Здесь следует отметить: если версия vs2015 является версией vs2015 Update 1, в это время появится окно с сообщением об ошибке, и соответствующие настройки не могут быть выполнены.

Это можно щелкнуть правой кнопкой мыши в точке проекта драйвера — «Выбрать свойства» — «Выбрать параметры отладки» — Выбрать средства отладки для Windows-Kernel Debugger в отладчике, который будет запускаться справа — «Нажмите на Конфигурация имени удаленного компьютера, он будет Появится окно конфигурации, интерфейс выглядит следующим образом:

Нажмите Add New Devide, чтобы добавить тестовый хост, заполните интерфейс отображения хоста тестового целевого устройства, тип устройства (компьютерное устройство или мобильное устройство), имя хоста хоста тестового целевого устройства (я также могу указать IP-адрес в тесте), в Рекомендуется выбрать первое Provision Device и выбрать параметр отладчика в параметре Provision Options, чтобы vs2015 мог автоматически развернуть протестированный драйвер, но целевой хост тестирования автоматически перезагрузится несколько раз, чтобы завершить настройку при настройке. Если вы выберете второй элемент, Целевой хост тестирования не будет перезапущен, но вам необходимо вручную развернуть тестовый драйвер.

Нажмите Далее, появится тип подключения (можно выбрать последовательный порт / сеть), выберите на этот раз последовательный порт, а затем введите параметры, заданные на хосте-тестере. Интерфейс настройки выглядит следующим образом:

После завершения настройки нажмите кнопку Далее, соответствующие настройки среды будут выполнены на целевом хосте тестирования, во время которого целевой хост тестирования будет перезапущен несколько раз. Интерфейс дисплея выглядит следующим образом:

Примечание. Если во время процесса установки в точке восстановления системы Creaing возникает ошибка, необходимо открыть точку восстановления системы на диске C тестового целевого хоста. Шаги настройки: запустите правой кнопкой мыши — «Система» — «Защита системы» — «Конфигурация», запустите и установите точку восстановления диска C.

После завершения настройки отображается следующий интерфейс, указывающий, что конфигурация прошла успешно:

Нажмите «Готово» для отображения следующего интерфейса:

Нажмите Применить, а затем выберите ОК.

E. Тестирование конфигурации на главном компьютере программы Visual Studio 2015

Наконец, в меню отладки VS2015 на главном компьютере — «Выбрать присоединить к процессу» — выберите «Отладчик модели ядра Windows» в раскрывающемся списке передачи (P) и выберите только что настроенное имя хоста тестов в раскрывающемся списке квалификатора (Q) — «Выберите ядро ​​в доступном процессе -» Наконец нажмите дополнительную кнопку.

После нажатия дополнительной кнопки появляется интерфейс отладки, указывающий, что конфигурация прошла успешно и драйвер можно отладить.

Примечание. Если Vs2015 дает сбой после нажатия кнопки добавления, проверьте версию Win10. Если версия win10 по-прежнему 10240, обновите ее до версии 10586. Вы можете нажать меню справки VS2015 — «О системе Microsoft Visual Studio -», чтобы просмотреть версию системы. Я пробыл здесь почти два дня, прежде чем, наконец, узнал, что это из-за несоответствия версий.

5.2.3.2 Установить тестовый целевой компьютер в качестве режима отладки сети

A. Установите тестовый целевой компьютер на WDKRemoteUser

На целевом компьютере запустите установочный файл MSI целевого теста тестирования, соответствующий целевой компьютерной платформе. MSI можно найти в каталоге установки WDK10 хост-компьютера, на котором был установлен WDK10.

Например: C: / Program Files (x86) / WindowsKits / 10 / Remote / x64 / WDK Test Target Setup x64-x64_en-us.msi

Примечание: Если программа не установлена, конфигурация, созданная в vs2015, не будет выполнена на следующем этапе. Я застрял на этом этапе в течение длительного времени и не мог найти причину.

B. установить на главном компьютереVisual Studio 2015программа

На главном компьютере в меню «Драйвер» Visual Studio выберите «Тест»> «Настроить устройство».

Нажмите Добавить новое устройство.

Здесь следует отметить: если версия vs2015 является версией vs2015 Update 1, в это время появится окно с сообщением об ошибке, и соответствующие настройки не могут быть выполнены.

Это можно щелкнуть правой кнопкой мыши в точке проекта драйвера — «Выбрать свойства» — «Выбрать параметры отладки» — Выбрать средства отладки для Windows-Kernel Debugger в отладчике, который будет запускаться справа — «Нажмите на Конфигурация имени удаленного компьютера, он будет Появится окно конфигурации, интерфейс выглядит следующим образом:

Нажмите Add New Devide, чтобы добавить тестовый хост, заполните интерфейс отображения хоста тестового целевого устройства, тип устройства (компьютерное устройство или мобильное устройство), имя хоста хоста тестового целевого устройства (я также могу указать IP-адрес в тесте), в Рекомендуется выбрать первое Provision Device и выбрать параметр отладчика в параметре Provision Options, чтобы vs2015 мог автоматически развернуть протестированный драйвер, но целевой хост тестирования автоматически перезагрузится несколько раз, чтобы завершить настройку при настройке. Если вы выберете второй элемент, Целевой хост тестирования не будет перезапущен, но вам необходимо вручную развернуть тестовый драйвер.

Нажмите кнопку Далее, появится тип подключения (можно выбрать последовательный порт / сеть), выберите сеть на этот раз, а затем введите параметры, заданные на хосте-тестере. Интерфейс настройки выглядит следующим образом:

После завершения настройки нажмите кнопку Далее, соответствующие настройки среды будут выполнены на целевом хосте тестирования, во время которого целевой хост тестирования будет перезапущен несколько раз. Интерфейс дисплея выглядит следующим образом:

Примечание. Если во время процесса установки в точке восстановления системы Creaing возникает ошибка, необходимо открыть точку восстановления системы на диске C тестового целевого хоста. Шаги настройки: запустите правой кнопкой мыши — «Система» — «Защита системы» — «Конфигурация», запустите и установите точку восстановления диска C.

После завершения настройки отображается следующий интерфейс, указывающий, что конфигурация прошла успешно:

Нажмите Применить, а затем выберите ОК.

C. Проверка конфигурации на главном компьютере программы Visual Studio 2015

Наконец, в меню отладки VS2015 на главном компьютере — «Выбрать присоединить к процессу» — выберите «Отладчик модели ядра Windows» в раскрывающемся списке передачи (P) и выберите только что настроенное имя хоста тестов в раскрывающемся списке квалификатора (Q) — «Выберите ядро ​​в доступном процессе -» Наконец нажмите дополнительную кнопку.

После нажатия дополнительной кнопки появляется интерфейс отладки, указывающий, что конфигурация прошла успешно и драйвер можно отладить.

Примечание. Если Vs2015 дает сбой после нажатия кнопки добавления, проверьте версию Win10. Если версия win10 по-прежнему 10240, обновите ее до версии 10586. Вы можете нажать меню справки VS2015 — «О системе Microsoft Visual Studio -», чтобы просмотреть версию системы. Я пробыл здесь почти два дня, прежде чем, наконец, узнал, что это из-за несоответствия версий.

       Обратите внимание на серьезную проблему. Хотя вы установили SDK и WDK, когда вы открываете проект драйвера, он показывает, что ntddk.h не найден. Это очень болезненная проблема. Я работал три дня и, наконец, нашел причину?

Ответ: После установки VS2015 вы выбираете установку SDK в интерфейсе установки, а затем используете для установки ранее загруженный WDK, что приводит к онлайн-установке установочного SDK VS2015, устанавливается последняя версия SDK, но вы используете предыдущую версию Подготовленная установка WDK определенно не будет соответствовать версии. Компиляция драйвера должна соответствовать соответствующей версии SDK и соответствующей версии WDK. Она отвечает за некоторые не найденные заголовочные файлы.

Например: SDK — это версия 10585, соответствующая WDK должна быть версии 10585.

A new version of Visual Studio brings along with it a new version of the Windows Driver Kit (WDK).  And so it is for Windows 10.  As Visual Studio (VS) and Windows itself continue to evolve, so does the WDK.  With at least one notable exception (that we dearly hope is fixed soon) the new versions of VS and the WDK are changes for the better.

Probably the biggest change is that WDK is now fully integrated.  You can use it to build drivers for any desktop/server OS from Windows 7 onward.  The WDK also includes built-in support for targeting 32-bit and 64-bit ARM processors, as well as Windows Mobile platforms.  So, there’s a lot more in the kit than was there by default previously.

The Most Important Change
Let’s get one absolutely critical point out of the way immediately:  They changed the menu bar titles back to upper and lower case by default.  As far as I’m concerned, VS 2015 has me right there.  But, in case you find yourself pining away for those menu items THAT SHOUT AT YOU, you can change back to all uppercase easily.  Just go to Tools… Options… Environment… General… and UNcheck “Apply title case styling to menu bar” and you’ll be good to go.

OK?  You happy?  Now we can go on and deal with one or two other details.

Coexistence
You’ll be happy to know that VS 2015 and the Windows 10 WDK and VS 2013 and the Windows 8.1 Update WDK can live happily side by side on your dev system.  After installing the new versions of VS and the WDK, here at OSR we were able to build drivers successfully using either tool set.  In fact, if we were careful and got our settings right, we were even able to switch back and forth between tool sets for projects that were initially created in VS 2013.  In other words, we were able to open a (KMDF) driver project created in VS 2013 with the Win 8.1 Update WDK in VS 2015 with the Windows 10 WDK and build the Solution without any problems.  Our Configurations (Win 7 Debug, for example) showed up and could be selected just as you would in VS 2013.  Even more interesting, after doing this we were able to open that same solution in VS 2013 and build it successfully using the Windows 8.1 Update WDK.

The key to making this work is paying attention to the “Platform Toolset” setting in the Configuration Properties (General section) of each project (shown in Figure 1).

Figure 1—Using VS 2015…but building drivers with the VS 2013 tools

Figure 1—Using VS 2015…but building drivers with the VS 2013 tools

When you first open a Windows 8.1 WDK project with VS 2015, it asks you if you want to convert the projects to the new toolset. If you agree, the Platform Toolset will be changed to appropriate Win10 versions.   In this case, when you build your driver you’ll be using the new project configurations, the new compiler and the new linker.

If you do not let VS convert the projects to VS 2015, it will use the toolset that was previously defined for each project when you build your code.  That means even if you choose to do your editing in VS 2015, you can choose which toolset VS will use for compiling and linking.

In summary, the power is in your hands to choose the tools you want to use to build your driver.  And the IDE that you use for editing does not necessarily dictate which tools you’ll use.  Cool, right?

Where Are My Build Environments?!
The biggest change you’ll see when working with the Windows 10 WDK (and the appropriate default Windows 10 toolset) is that the only Solution Configurations defined by default are “Release” and “Debug”.  No more “Win8.1 Debug”,  “Win8.1 Release”, “Win8 Debug”, “Win8 Release”, “Win7 Debug”, “Win7 Release”.  At first, we found this quite shocking.  After all, we’ve been selecting the “build environment” to use for many years.  To all of a sudden have these gone was, well, a bit unsettling.  But after working with the new tools for a while, I totally get why they’ve made this change, and I’ve come to love it.

Why?  Well, for one thing, most of us don’t really care about the myriad target OS versions.  Maybe we care about one or two specific OS versions that we’re targeting, but do we really need to look at Release and Debug alternatives for every OS that’s supported?  It makes for a mess, especially when shipping drivers to customers.  You either have to tell them which build environments are supported (“Remember… you only want to build the Windows 7 or the Windows 8.1 versions of the driver), or you have to delete build environments from your project.  Which is always a nerve-wracking thing to do.

Another reason I’ve come to like the “roll your own” settings approach is, given that you’ll almost certainly want to create your own Solution Configuration name(s) in any case, you now get to name them whatever you want.  This is particularly nice for us, because we can name the configuration in a provided solution for a specific client, like we could create a “FredCorp Debug” Solution Configuration and a “FredCorp Release” Solution Configuration.  Nice!

Finally, not having the long list of pre-made Solution Configurations just isn’t practical anymore starting in Win10.  Not only are OS versions back to Win 7 still supported (so there are four different Target OS Versions: Win7, Win8, Win8.1, and “Win10 or higher”), but there are now multiple Target Platforms supported.  These are: Universal, Desktop, and Mobile.

You define the Target OS Version and the Target Platform (Universal, Desktop, or Mobile) in the new “Driver Settings” section of your driver project’s Properties.  See Figure 2.

Figure 2—Windows 10 WDK Driver Properties

Figure 2—Windows 10 WDK Driver Properties

Ah!  You might be wondering about what the “Universal” platform is all about.  In short, it’s the setting that will allow your drivers to properly support any Windows platform – Desktop, Server, or Mobile.  For a quick rundown on Universal Drivers, see the sidebar entitled, A Universal Driver? Do I Care?

[infopane color=”6″ icon=”0182.png”]A Universal Driver? Do I Care?
Starting with the Windows 10 WDK, the concept of Target Platform was introduced. Therefore, in addition to Target OS Version, and Solution Platform (the “Solution Platform” is Visual Studio’s way of indicating the target processor architecture), there’s now a Target Platform that indicates the environment to which you’re targeting your driver.

There are presently three possible Target Platforms:

1. Desktop
2. Mobile
3. Universal

The Desktop Target Platform is used to exclusively target “traditional” Windows client and server systems. The Mobile Target Platform indicates that your driver is exclusively targeting Windows 10 Mobile.

Without a doubt, the most interesting alternative is the Universal Target Platform. When you select Universal and successfully build your driver, your driver will be able to run on Windows systems running on Desktop (including Server), Mobile, and IoT Core platforms. Note that the Universal Target Platform can only be used if the Target OS Version for your Configuration is Windows 10 or later.

The concept of a Universal Target Platform is simple: You agree to only use a specific subset of APIs and/or DDIs in your driver, in return for the guarantee that your driver will successfully load on any Windows platform. How do you know which APIs/DDIs you can use in your driver? The documentation pages on MSDN have been (mostly) modified to indicate the Target Platform supported by that API/DDI. If the DDI says “Universal” you can use that function in a driver built for the Universal Target Platform.
How limited is the list of APIs/DDIs that you can call? For kernel mode drivers, not very restrictive at all. In fact, we’d be surprised if any KMDF driver is calling any DDIs (WDF or WDM) that aren’t supported on the Universal Target Platform. Certainly, all of the OSR-written kernel-mode drivers that we’ve tried here have all met the requirements. For user-mode drivers, things are a bit more limited. The more your user-mode driver does that is outside the realm of what a “traditional” driver supports, the more likely you are to be calling an API that’s not supported by the Universal Target Platform.

You can get a quick view of whether or not you’re using any prohibited APIs by selecting the Universal Target Platform, and then enabling ApiValidator:

Use ApiValidator to Ensure Your Driver is Universal Platform Compliant

Use ApiValidator to Ensure Your Driver is Universal Platform Compliant

Perhaps the best question about the Universal Target Platform is “Do you care?” If your driver is meant for a specific environment, whether that’s the traditional desktop environment or a Windows Phone, why should you care if it’s calling any DDIs or APIs that aren’t part of the Universal Target Platform? The answer to that is easy: Because it makes your driver more future-proof. We all know that most code, especially driver code, lives on long after its initial intended use. By building to the Universal Target Platform you can be sure that your driver is using the subset of DDIs/APIs that are most appropriate for general driver use, while also ensuring that your driver can run on another platform… perhaps Windows IoT Core… at some point in the future.

[/infopane]

So how do you create your own Solution Configurations?  It’s easy, really.  Within VS, open Configuration Manager.  There are several ways to do this, but perhaps the easiest is to click on the “Configuration Manager…” button on the top right of the Project Properties dialog box… see Figure 2).  Within Configuration Manager, pull down the “Active solution configurations” drop-down, and select “<New…>” as shown in Figure 3.

Figure 3—Creating a new Solution Configuration

Figure 3—Creating a new Solution Configuration

Choose a name for your new configuration, and choose to copy the settings from an existing Solution Configuration to make your life easier.  You can see in Figure 3 I’ve already created a configuration for myself named “Universal Debug.”

Once the new Solution Configuration has been created, ensure it’s selected as the Active Solution Configuration and select the Project Settings you want to use in that Configuration.  These settings can obviously include Target OS Version and Target Platform.  But they can also include any other setting you may want to vary among your Solution Configurations.  Like, for example, signing and StampInf processing.  You could easily create a Solution Configuration named “Project Release” that builds the Release version of your components, selects Release Signing, and tells StampInf to stamp a specific version into your INF’s DriverVer.

The key point to keep in mind here is that as the WDK becomes more integrated with VS, we get to leverage increasing amounts of Visual Studio’s capabilities to make our driver development jobs easier.

Where’s My Code Analysis Window!?
It’s dead, Jim.  No, not code analysis.  Certainly not Code Analysis!  But the separate window that appears with code analysis warnings after your driver builds is gone.  Code analysis warnings now appear along with all the other errors and warnings about your code, in the “Error List” window that’s traditionally located at the bottom of VS.  You can see this in Figure 4.  We’ll miss the dedicated Code Analysis Window. Sigh!

Figure 4—Farewell to the Dedicated Code Analysis Window

Figure 4—Farewell to the Dedicated Code Analysis Window

Anything Else?
Actually, there’s a lot.  But we don’t have the space to get into much more right now.  Static Driver Verifier works almost identically to the way it works in the Windows 8.1 Update WDK.  Driver testing (including automated deployment) is rumored to actually work and be far more reliable than it has been in the past, but we haven’t had time to try this yet.  And, no… “Calculate Code Metrics” still only works on Managed Code (why they can’t provide me the LOC, Cyclomatic Complexity, and other metrics for my driver is frankly beyond me… it would actually be helpful).

In Summary
There are a lot of changes in VS 2015 and a lot of cool things in the Windows 10 WDK.  If you’ve been waiting to install VS 2015, to be sure it won’t break your existing development environment, our tests indicate that you won’t encounter any problems.  Dive in, and let us hear what new features you find, and what old features you miss!

  • Remove From My Forums
  • Question

  • I can’t seem to have a stable driver building environment with VS 2015 and the WDK 10.

    Everything worked fine on VS 2013 and the WDK 8.1.

    What am I doing wrong? I install VS first, then the WDK. The DeviceMetaDataWizard .exe does not show up in its directory, therefore on the DRIVER tab in Visual Studio 2015, if you select MetaData, then Device Metadata, it will say «The system cannot
    find the file specified».

    What going on here???

Answers

  • You need to do a few more steps with the Windows 10 WDK, in particular did you choose a custom install to get Visual C++ and did you install the SDK before the WDK.  See
    http://www.windrvr.com/2015/05/11/wdk-installation-tips/ for tips on installing the WDK.


    Don Burn Windows Driver Consulting Website: http://www.windrvr.com

    • Marked as answer by

      Friday, February 12, 2016 11:07 PM

2 / 2 / 0

Регистрация: 10.01.2017

Сообщений: 48

1

10.01.2017, 11:23. Показов 3282. Ответов 6


Одно время занимался разработкой драйверов для Windows XP с использованием модели WDM. Решил попробовать разрабатывать драйверы под Windows 7, но уже с использованием модели WDF. Установил в Windows 7 SP1 среду разработки Visual Studio 2015 Community и набор для разработки драйверов WDK 10. При этом все установилось и в Visual Studio, там где создаются проекты, появились пункты меню связанные с созданием различных драйверов. И тут начались проблемы. Пытался ли я создать драйвер c использованием KMDF модели или же прежней WDM модели возникала одни и та же ошибка при попытке откомпилировать получившийся проект:

An SDK corresponding to WDK version ‘8.1’ was not found. Please install the SDK before building. KMDF Driver2 C:Program Files (x86)Windows Kits10buildWindowsDriver.common.targets
Попробовал провести установку в Windows 8.1 тот же результат. Установил SDK 8.1 и вновь тот же эффект!

Я посмотрел файл WindowsDriver.common.targets. Там данная ошибка обозначена при условии несовпадения версии SDK и WDK. Вопрос в том, как правильно настроить подобную комбинацию продуктов в Windows 7 SP1? Может поменять какие — нибудь специфические переменные среды ? Или установить какие то ключи реестра правильно ? Сразу оговорюсь, я пытался компилировать даже пустой проект. Результат тот же. Я понимаю что пустой проект в принципе не скомпилируется но все же хотелось бы эту ошибку устранить. Была и другая проблема, но пока хочу разобраться с этой. Буду рад любой полезной информации! Заранее спасибо!

Да, сделаю уточнение, я поставил подобную комбинацию продуктов (VS 2015 Community + WDK 10) потому что для каждого из этих продуктов в качестве возможной ОС указывалась Windows 7 SP1. Насколько я понял не только как целевая ОС но и как ОС в которой возможно их нормальное функционирование.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Ушел с форума

Эксперт С++

16454 / 7418 / 1186

Регистрация: 02.05.2013

Сообщений: 11,617

Записей в блоге: 1

10.01.2017, 12:13

2

Цитата
Сообщение от SergeiSX
Посмотреть сообщение

An SDK corresponding to WDK version ‘8.1’ was not found. Please install the SDK before building.

Надо устанавливать Windows 10 SDK, а не Windows 8.1 SDK.

То есть, последовательность действий с самого начала должна быть такая:
1. Устанавливаем Visual Studio 2015.
2. Устанавливаем все мажорные обновления (сейчас есть Update 3) для Visual Studio 2015.
3. Устанавливаем Windows 10 SDK.
4. Устанавливаем Windows Driver Kit 10.

SDK можно скачать здесь:

Windows 10 SDK
https://developer.microsoft.co… ows-10-sdk

Цитата
Сообщение от SergeiSX
Посмотреть сообщение

Решил попробовать разрабатывать драйверы под Windows 7, но уже с использованием модели WDF.

WDF из WDK 10 позволяет разрабатывать драйверы только под Windows 10 и Windows Server 2016.
Последняя версия WDF, драйверы которой работают на Windows 7 — это версия 1.11, она входит в WDK 8.



0



2 / 2 / 0

Регистрация: 10.01.2017

Сообщений: 48

10.01.2017, 12:49

 [ТС]

3

Спасибо Вам большое! Нигде не мог внятного ответа получить и бился лбом о стену. Если я правильно понял Концепция Visual Studio 2015 такова что для разработки драйверов под разные системы необходимо использовать разный tools и поэтому необходимо ставить разные WDK и соответствующие им SDK? Подскажите еще пожалуйста, а я смогу разрабатывать драйверы под Windows 7 SP1 если не морочить себе голову а установить VS 2010 Express и WDK 7.6.1? Я могу конечно установить WDK 7.6.1 и соответствующий ему SDK и попробовать разрабатывать в Visual Studio 2015 Community, но что то не уверен что избегу очередных эффектов.



0



Ушел с форума

Эксперт С++

16454 / 7418 / 1186

Регистрация: 02.05.2013

Сообщений: 11,617

Записей в блоге: 1

10.01.2017, 13:16

4

Цитата
Сообщение от SergeiSX
Посмотреть сообщение

Если я правильно понял Концепция Visual Studio 2015 такова что для разработки драйверов под разные системы необходимо использовать разный tools и поэтому необходимо ставить разные WDK и соответствующие им SDK?

Да.
При этом в прежних WDK, вплоть до 7.1 включительно, такого не было.

Цитата
Сообщение от SergeiSX
Посмотреть сообщение

Подскажите еще пожалуйста, а я смогу разрабатывать драйверы под Windows 7 SP1 если не морочить себе голову а установить VS 2010 Express и WDK 7.6.1?

Цитата
Сообщение от SergeiSX
Посмотреть сообщение

Я могу конечно установить WDK 7.6.1 и соответствующий ему SDK и попробовать разрабатывать в Visual Studio 2015 Community, но что то не уверен что избегу очередных эффектов.

Для WDK версий 7.1 и ниже ни Visual Studio, ни SDK не требуются, можно писать
код хоть в блокноте и компилировать из командной строки. И драйверы будут работать
на всех версиях Windows, начиная с XP.

А если все-таки хочется удобств, можно, например, использовать VisualDDK:
http://visualddk.sysprogs.org/

Либо создавать проекты в Visual Studio (любой версии) и через pre/post-build events или через
мейкфайлы запускать сборку build environment из WDK. Я так делаю уже достаточно давно, это
достаточно несложно, при этом, с одной стороны, сохраняется портабельность драйверов, а с
другой — доступны все основные инструменты IDE: управление файлами и вкладками,
подсветка синтаксиса, поиск по коду, рефакторинг, подсказки и т.д.



1



2 / 2 / 0

Регистрация: 10.01.2017

Сообщений: 48

10.01.2017, 14:50

 [ТС]

5

Спасибо! То есть можно поставить WDK и спокойно работать в моделях KMDF и UMDF. А в более новых системах чем 7 ка нужно будет ставить соответствующие WDK и SDK. Скажите а в принципе можно настроить компиляцию компилятором самой студии ? Я читал в одной книжке по сопряжению устройств с компьютером что можно в VS10 Express было компилировать прямо в студии без pre и post-build шагов но там использовалась модель WDM. Я понимаю что из командной строки геморроя меньше. Но многим у нас так будет привычнее. И ошибки чтобы сама студия отмечала.



0



Ушел с форума

Эксперт С++

16454 / 7418 / 1186

Регистрация: 02.05.2013

Сообщений: 11,617

Записей в блоге: 1

10.01.2017, 15:04

6

Цитата
Сообщение от SergeiSX
Посмотреть сообщение

Я читал в одной книжке по сопряжению устройств с компьютером что можно в VS10 Express было компилировать прямо в студии без pre и post-build шагов но там использовалась модель WDM.

Попробуй VisualDDK. Может быть, это именно то, что тебе нужно.

Цитата
Сообщение от SergeiSX
Посмотреть сообщение

Но многим у нас так будет привычнее. И ошибки чтобы сама студия отмечала.

Я делаю так: создаю в Visual Studio (не важно, какой версии) проект ‘static library’. Позже переключаю
его в ‘utility’. Добавляю исходные файлы драйвера .c и .h, а также файл sources. И еще специальный
.bat-файл, который содержит нужные инструкции по сборке (подготовка параметров и вызов команды build).
Далее захожу в свойства проекта и прописываю там в pre-build event вызов этого батника с нужными параметрами.
После этого можно вполне нормально работать с драйвером из Visual Studio: добавлять и удалять файлы,
выполнять поиск по коду, использовать инструменты рефакторинга и т.п. Подсветка синтаксиса и подсказки
тоже работают. Фактически, это почти то же самое, что делают VisualDDK и более новые версии Visual Studio,
только сделанное вручную.



1



2 / 2 / 0

Регистрация: 10.01.2017

Сообщений: 48

10.01.2017, 15:41

 [ТС]

7

Спасибо! Все предельно ясно. Попробую…



0



DarwinRoot


    Автор темы

  • #1

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Сегодня мы вам покажем как установить Windows Driver Kit (WDK) в Visual Studio и расскажу что такое драйвер и как они применяется и в том числе как работает Kernel Driver с анти-читами и используется!

vasya2137

Пользователь


  • #2

а чо делать еси на сайте одинецатий виндус(((

DarwinRoot


    Автор темы

  • #3

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

а чо делать еси на сайте одинецатий виндус(((

он адаптирован под все ОС

Понравилась статья? Поделить с друзьями:
  • Windows driver kit for windows 10
  • Windows driver foundation разработка драйверов купить
  • Windows driver foundation разработка драйверов pdf
  • Windows driver foundation нет в службах
  • Windows driver foundation где находится в windows 10