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


Создание нового драйвера функции устройства

В этой статье мы объясним, как использовать Visual Studio для создания нового драйвера функции устройства. Драйверы функций устройств отличаются от драйверов фильтров, программных драйверов и драйверов файловой системы, которые рассматриваются в других статьях. Дополнительные сведения о драйверах функций устройств и их отличиях от других типов драйверов см. в разделах Что такое драйвер?, Выбор модели драйвера и Узлы устройств и стеки устройств.

Для начала определите, где ваше устройство помещается в список технологий, описанных в разделе Технологии устройств и драйверов. Сведения о том, какие модели драйверов доступны для вашего устройства, см. в документации по этой конкретной технологии. Рекомендуемая модель драйвера зависит от технологии. Для некоторых технологий в документации рекомендуется использовать платформу драйвера пользовательского режима (UMDF) или платформу драйверов в режиме ядра (KMDF). Для других технологий в документации объясняется, как создать мини-диск, который является частью пары драйверов. Миниприводы идут под различными названиями, в том числе miniport и miniclass.

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

Вариант 1. В документации по вашей технологии рекомендуется использовать UMDF

  1. Запустите Visual Studio.
  2. Выберите Создать проект в диалоговом окне запуска или выберите Создать | Проект в меню Файл Visual Studio.
  3. В правой области диалогового окна Создание проекта найдите и выберите Драйвер пользовательского режима (UMDF V2).
  4. Выберите Далее.
  5. Введите поля Имя проекта, Расположение и Имя решения , а затем нажмите кнопку Создать. Дополнительные сведения см. в статье Написание драйвера UMDF на основе шаблона.

    Примечание

    При создании нового драйвера UMDF необходимо выбрать имя драйвера, которое содержит не более 32 символов. Это ограничение длины определяется в wdfglobals.h.

  6. На этом этапе у вас есть проект драйвера, который реализует общий код, необходимый для большинства драйверов UMDF. Теперь вы можете указать код, относящееся к вашему устройству. Сведения об интерфейсах, которые необходимо реализовать, см. в документации по вашей технологии.

Вариант 2. Документация по вашей технологии рекомендует KMDF

  1. Запустите Visual Studio.
  2. Выберите Создать проект в диалоговом окне запуска или выберите Создать | Проект в меню Файл Visual Studio.
  3. В правой области диалогового окна Создание проекта найдите и выберите Драйвер режима ядра (KMDF).
  4. Выберите Далее.
  5. Введите поля Имя проекта, Расположение и Имя решения , а затем нажмите кнопку Создать. Дополнительные сведения см. в статье Написание драйвера KMDF на основе шаблона.

    Примечание

    При создании нового драйвера KMDF необходимо выбрать имя драйвера, которое содержит не более 32 символов. Это ограничение длины определяется в wdfglobals.h.

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

Вариант 3. В документации по вашей технологии описывается модель мини-драйвера

Если у вашей технологии устройства есть мини-порт, мини-класс или другая модель мини-накопителя, проверка, чтобы узнать, есть ли в Visual Studio определенный шаблон для модели.

  1. Запустите Visual Studio.
  2. Выберите Создать проект в диалоговом окне запуска или выберите Создать | Проект в меню Файл Visual Studio.
  3. В правой области диалогового окна Создание проекта просмотрите список установленных шаблонов, чтобы найти шаблон для типа драйвера, который необходимо написать.
  4. Если вы нашли шаблон для вашего типа драйвера, выберите его.
  5. Выберите Далее.
  6. Введите поля Имя проекта, Расположение и Имя решения , а затем нажмите кнопку Создать.
  7. Если у вас есть мастер драйверов, выполните шаги мастера, чтобы создать проект драйвера.
  8. На этом этапе у вас есть проект драйвера, который реализует общий код, необходимый драйверу. Теперь вы можете указать код, относящееся к вашему устройству. Сведения о функциях, которые необходимо реализовать, см. в документации по вашей технологии.

Если у вашей технологии устройства есть модель мини-накопителя и вы не можете найти конкретный шаблон для вашего типа мини-накопителя, скорее всего, отправной точкой будет шаблон Windows Driver Model (WDM). Инструкции см. в документации по конкретной технологии. В редких случаях для записи мини-драйвера можно использовать KMDF, но обычно отправной точкой является WDM.

  1. Запустите Visual Studio.
  2. Выберите Создать проект в диалоговом окне запуска или выберите Создать | Проект в меню Файл Visual Studio.
  3. В правой области диалогового окна Создание проекта найдите и выберите Пустой драйвер WDM.
  4. Выберите Далее.
  5. Введите поля Имя проекта, Расположение и Имя решения , а затем нажмите кнопку Создать.
  6. На этом этапе у вас есть пустой проект драйвера WDM. В окне Обозреватель решений щелкните правой кнопкой мыши проект драйвера и выберите добавить | Новый элемент.
  7. В диалоговом окне Добавление нового элемента введите имя файла .cpp и нажмите кнопку Добавить.

    Примечание

    Если вы хотите создать C-файл вместо файла .cpp, введите имя с расширением .c .

  8. Сведения о функциях, которые необходимо реализовать, см. в документации по вашей технологии. По мере реализации и упорядочения функций вы можете добавить дополнительные .cpp или C-файлы.