Поделиться через


Создание драйвера Windows

Microsoft Visual Studio 2019 можно использовать вместе с пакетом драйверов Windows (WDK) версии 2004 для сборки драйверов Windows. Вы можете скачать комплекты и инструменты из Windows Центр разработки оборудования.

Во многих случаях можно перекомпилировать устаревший драйвер режима ядра в качестве драйвера Windows, если драйвер не работает с компонентами пользовательского режима. Устаревшие драйверы WDM и KMDF должны повторно компилироваться в качестве драйверов Windows, предназначенных для Windows 10 без необходимости преобразования. Хотя драйверы могут компилироваться без какого-либо преобразования, это не означает, что драйвер соответствует всем требованиям драйверов Windows. Дополнительные сведения о требованиях к драйверам Windows см. в статье "Начало разработки драйверов Windows".

В отличие от этого, существующие драйверы пользовательского режима могут потребовать изменения для компиляции в качестве драйверов Windows. В частности, пакет драйверов не должен иметь зависимостей за пределами UWP. Например, только некоторые из API Win32 являются частью UWP.

Преобразование существующего проекта драйвера в проект драйвера Windows

  1. В Visual Studio 2019 откройте существующий проект драйвера.
  2. В области Обозреватель решений выберите решение и удерживайте его (или щелкните правой кнопкой мыши) и выберите Configuration Manager. Задайте для целевой операционной системы значение Windows 10.
  3. Выберите и удерживайте (или щелкните правой кнопкой мыши) проект драйвера и выберите "Свойства". В разделе "Свойства конфигурации-> драйвер" убедитесь, что для целевой платформы задано значение "Драйверы Windows". Чтобы создать драйвер, работающий только в Windows 10 для классических выпусков, выберите desktop.
  4. Создайте драйвер. Могут появиться ошибки компоновщика.
  5. Исправьте ошибки по одному, перейдя в журнал ошибок. Ознакомьтесь с отдельными справочными страницами в документации по возможным альтернативным API. Если замена недоступна, может потребоваться изменить драйвер.

Создание проекта драйвера Windows в Microsoft Visual Studio

  1. Создайте драйвер из шаблона (файл-New> Project-Create> New Project-Create New Project-Type-Driver-Select>>> the template of interest).

  2. После создания проекта в области Обозреватель решений выберите решение и удерживайте его (или щелкните правой кнопкой мыши) и выберите Configuration Manager. Задайте для конфигурации активного решения нужную целевую версию Windows и установите для платформы активных решений значение Win32 или x64. Если Arm не указан, нажмите кнопку <"Создать",> чтобы создать для Arm.

    Если выбрать Windows 10, модель драйвера по умолчанию используется для универсальной.

    Чтобы изменить модель драйвера вручную, выберите и удерживайте (или щелкните правой кнопкой мыши) проект драйвера и выберите "Свойства". В разделе "Свойства-параметры> драйвера конфигурации" найдите запись целевой платформы>. Выберите драйвер Windows. Microsoft Visual Studio использует этот параметр для определения связей библиотек.

    Обратите внимание, что невозможно создать драйвер Windows для версий Windows более ранних версий, чем Windows 10 версии 1809.

  3. Возможно, потребуется изменить INF-файл, чтобы указать поставщика, указанный как маркер %ManufacturerName% , который будет развернут позже в разделе строк INF-файла. Например:

    Provider="Contoso"
    
  4. Теперь вы можете создать решение. Visual Studio ссылается на необходимые библиотеки и создает CAT-файл, INF-файл и двоичный файл драйвера.

Создание нового универсального приложения или проекта DLL в Microsoft Visual Studio

  1. Создайте драйвер из шаблона (file-New> Project-Create> New Project-Create New Project-Project> Type-Driver-Select>> the template of interest) и выберите пустое классическое приложение для драйверов (универсальная) или пустую библиотеку DLL для драйверов (универсальная версия).
  2. После создания проекта в области Обозреватель решений выберите решение и удерживайте его (или щелкните правой кнопкой мыши) и выберите Configuration Manager. Задайте для конфигурации активного решения нужную целевую версию Windows и установите для платформы активных решений значение Win32 или x64. Если Arm не указан, нажмите кнопку <"Создать",> чтобы создать для Arm. Если выбрать Windows 10, модель приложения по умолчанию используется для универсальной. Чтобы изменить целевую платформу вручную, выберите и удерживайте (или щелкните правой кнопкой мыши) проект драйвера и выберите "Свойства". В разделе "Свойства-параметры> драйвера конфигурации" найдите запись целевой платформы>.
  3. Постройте решение.

Сведения о параметрах конфигурации, которые можно использовать в Visual Studio при создании драйвера, см. в статье "Создание драйвера с помощью WDK".