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


Создание базового драйвера принтера версии 4

Внимание

Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.

Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.

Внимание

Корпорация Майкрософт объявила о завершении обслуживания для устаревших драйверов принтера версии 3 и версии 4.

Дополнительные сведения см. в разделе "Завершение обслуживания" для сторонних драйверов принтеров в Windows.

Предупреждение

В этом руководстве по драйверу принтера содержится несколько ошибок и в настоящее время не используется.

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

Инструкции в этом разделе посвящены шагам, необходимым для создания драйвера, и не объяснят множество вариантов драйвера принтера, доступных в мастере.

Цель этого раздела — предоставить общие сведения о процессе разработки драйвера принтера в Visual Studio 2019.

Более подробный просмотр параметров драйвера принтера представлен в разделе "Изучение параметров драйвера" в мастере.

Необходимые компоненты

Следуйте инструкциям в разделе "Скачать комплект драйверов Windows( WDK) и убедитесь, что вы выполнили следующие действия:

  1. Установите Visual Studio 2019 с рабочей нагрузкой C++ и правильной версией пакета SDK для Windows 10.

  2. Установите комплект драйверов Windows (WDK) для Windows 10 версии 2004.

  3. Установите расширение комплекта драйверов Windows (WDK) для Visual Studio 2019.

Выбор функций для базового драйвера

  1. В Visual Studio в главном меню выберите "Файл>нового>проекта".

  2. В окне "Новый проект" в правом верхнем углу введите драйвер принтера версии 4 и нажмите клавишу ВВОД. При этом будут получены все шаблоны драйверов, имена которых содержат текст поиска.

  3. В средней области выберите "Драйвер принтера" версии 4.

  4. Введите имя драйвера в поле "Имя " и нажмите кнопку "ОК". Например, можно ввести MyV4PrintDriver.

  5. В мастере создания драйвера печати версии 4 в разделе "Выбор типа отрисовки драйвера": выберите драйвер печати версии 4 с пользовательскими фильтрами отрисовки (принимает только XPS).

  6. Оставьте все остальные параметры по умолчанию и нажмите кнопку "Далее".

  7. В разделе сведений о настройке мастера оставьте все параметры по умолчанию, а затем нажмите кнопку "Далее".

  8. В разделе "Сведения о настройке" мастера оставьте все параметры по умолчанию, а затем нажмите кнопку "Далее".

Microsoft Visual Studio использует предыдущие выборы для создания файлов проекта для MyV4PrintDriver.

Проверка созданных файлов драйверов

  1. Перейдите в папку для созданных файлов драйверов. Например, если вы назвали проект MyV4PrintDriver, то по умолчанию файлы будут сохранены в следующем расположении: My Documents > Visual Studio 2019 > Projects > MyV4PrintDriver MyV4PrintDriver MyV4PrintDriver>.

  2. Убедитесь, что папка содержит следующие файлы:

    Имя файла Тип файла
    MyV4PrintDriver.gpd Файл описания принтера
    MyV4PrintDriver.inf Файл сведений о настройке
    MyV4PrintDriver.vcxproj Файл проекта C++
    MyV4PrintDriver.vcxproj.filters Файл фильтров проекта C++
    MyV4PrintDriver-manifest.ini Файл параметров конфигурации (манифест драйвера печати)
    V4PrintDriver-Intellisense.js Файл JavaScript для Intellisense
    V4PrintDriver-Intellisense-Windows8.1.js Файл JavaScript для Intellisense

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

Создание уникального идентификатора PrinterDriverID для драйвера

  1. В меню Инструменты Visual Studio выберите "Создать GUID".

  2. Выберите вариант 4. Формат реестра и кнопка "Копировать ".

  3. В Visual Studio в Обозреватель решений разверните узел MyV4PrintDriver.

  4. Выберите "Файлы драйверов", а затем в окне "Свойства " просмотрите значение поля "Уникальный идентификатор ". Замените это значение идентификатором GUID, созданным с помощью вставки.

Завершение INF-файла

В проекте MyV4PrintDriver должна быть запись для файлов драйверов. Откройте файл MyV4PrintDriver.inf, который должен быть указан. Откройте этот файл.

Первые 2 строки INF-файла — это уведомление об авторских правах для пакета драйвера.

Строка 1 содержит год и имя вашей компании. Замените символы YYY на текущий год и замените символы <имя производителя именем> вашей компании.

В строке 2 описывается содержимое INF драйвера, включая имя производителя и сведения о модели устройства. Замените символы <имя производителя> именем вашей компании и замените символы <модели> принтера именем принтера, поддерживаемым драйвером.

Например, если год равен 2021 году, а название вашей компании — Fabrikam, а модель устройства печати — 1234, введите следующее:

; Copyright (c) 2021 Fabrikam
; INF file for the Fabrikam 1234 print driver

2. Проверьте правильность раздела [версия]

Найдите строку, содержащую [версию].

  • Проверьте и убедитесь, что отображается эта строка:

    ClassVer=4.0
    
  • Проверьте и убедитесь, что отображается эта строка:

    Signature="$WINDOWS NT$"
    

3. Настройка раздела [SourceDisksFiles]

Найдите строку, содержащую [SourceDisksFiles].

Ниже приведены следующие строки:

MyV4PrintDriver.gpd=1
MyV4PrintDriver-manifest.ini=1
MyV4PrintDriverRenderFilter-PipelineConfig.xml=1
MyV4PrintDriverRenderFilter.dll=1

4. Настройка раздела [DriverFiles]

Найдите строку, содержащую [DriverFiles].

Ниже приведены следующие строки:

MyV4PrintDriver.gpd
MyV4PrintDriver-manifest.ini
MyV4PrintDriverRenderFilter-PipelineConfig.xml
MyV4PrintDriverRenderFilter.dll

5. Настройка раздела [Standard.NT$ARCH$]

Найдите строку, содержащую [Standard.NT$ARCH$].

Этот раздел ссылается на Install раздел INF для каждой модели. Например, если модель принтера — Fabrikam 1234, введите следующее:

"Fabrikam 1234"=DriverInstall, USBPRINT\\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\\Fabrikam1234

6. Добавьте PrinterDriverID в INF-файл

В Visual Studio в Обозреватель решений разверните узел MyV4PrintDriver.

Выберите "Файлы драйверов", а затем в окне "Свойства " просмотрите значение поля "Уникальный идентификатор ". Это идентификатор драйвера (GUID). Выделите его и скопируйте его.

В INF-файле в разделе [Standard.NT$ARCH$] введите следующую строку:

"Fabrikam 1234"=DriverInstall,

Затем после запятой вставьте GUID, скопированный на предыдущем шаге. Завершенный раздел [Standard.NT$ARCH$] должен выглядеть следующим образом:

"Fabrikam 1234"=DriverInstall, {GUID}
"Fabrikam 1234"=DriverInstall, USBPRINT\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\Fabrikam1234

7. Настройка раздела [Строки]

Найдите строку, содержащую [Строки].

Ниже вы найдете определение строки ManufacturerName . Замените символы <имя производителя> именем вашей компании, чтобы указать имя производителя для целевого принтера и удалить остальную часть строки, содержащей значение; TODO:

Например, если имя вашей компании — Fabrikam, введите следующее:

ManufacturerName="Fabrikam"

8. Сохранение INF-файла

После завершения INF-файла он должен выглядеть следующим образом:

; Copyright (c) 2021 Fabrikam
; INF file for the Fabrikam 1234 print driver

[Version]
Signature="$Windows NT$"
Class=Printer
ClassGuid={4D36E979-E325-11CE-BFC1-08002BE10318}
Provider=%ManufacturerName%
CatalogFile=MyV4PrintDriver.cat
ClassVer=4.0
DriverVer=03/17/2014,1.0.0.0
PnpLockdown=1

[Manufacturer]
%ManufacturerName%=Standard,NT$ARCH$

[Standard.NT$ARCH$]
"Fabrikam 1234"=DriverInstall, {GUID}
"Fabrikam 1234"=DriverInstall, USBPRINT\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\Fabrikam1234

[DriverInstall]
CopyFiles=DriverFiles

[DriverFiles]
MyV4PrintDriver.gpd
MyV4PrintDriver-manifest.ini
MyV4PrintDriverRenderFilter-PipelineConfig.xml
MyV4PrintDriverRenderFilter.dll

[DestinationDirs]
DefaultDestDir = 66000

[SourceDisksNames]
1 = %DiskName%,,,""

[SourceDisksFiles]
MyV4PrintDriver.gpd=1
MyV4PrintDriver-manifest.ini=1
MyV4PrintDriverRenderFilter-PipelineConfig.xml=1
MyV4PrintDriverRenderFilter.dll=1

[Strings]
ManufacturerName="Fabrikam"
DiskName="MyV4PrintDriver Installation Disk"

Обновление списка файлов драйверов

  1. В Visual Studio в Обозреватель решений разверните узел MyV4PrinterDriver.

  2. Выберите файл MyV4PrintDriver.gpd и перетащите его на узел файлов драйверов.

  3. Выполните то же самое с MyV4PrintDriver-manifest.ini.

Добавление файла конфигурации конвейера в пакет драйвера

  1. В Обозреватель решений выберите и удерживайте (или щелкните правой кнопкой мыши) проект MyV4PrintDriver, а затем выберите "Свойства".

  2. В окне "Страницы свойств MyV4PrintDriver" разверните узел "Свойства конфигурации" в левой области.

  3. Разверните узел "Установка драйвера", а затем выберите "Файлы пакетов".

  4. В правой области выберите строку " <Изменить...> " в перечисленных файлах.

    Выберите файлы пакетов для редактирования строки.

  5. Замените заполнитель относительным путем файла конфигурации конвейера, например, ../MyV4PrintDriver Render Filter/MyV4PrintDriverRenderFilter-PipelineConfig.xmlнажмите кнопку ОК.

    Замените заполнитель относительным путем.

Добавление ссылки на фильтр отрисовки в пакет драйвера

  1. В Visual Studio в Обозреватель решений разверните узел MyV4PrinterDriver.

  2. Выберите узел "Ссылки" и удерживайте его (или щелкните правой кнопкой мыши) —> выберите "Добавить ссылку".

  3. Установите флажок для фильтра отрисовки MyV4PrintDriver, а затем нажмите кнопку "ОК".

Настройка решения драйвера для отладки и развертывания

  1. В Обозреватель решений выберите и удерживайте (или щелкните правой кнопкой мыши) проект MyV4PrintDriver, а затем выберите "Свойства".

  2. В окне "Страницы свойств MyV4PrintDriver" разверните узел "Свойства конфигурации" в левой области.

  3. Разверните узел "Установка драйвера", а затем выберите "Развертывание". Выполните следующие действия в правой области:

    • Убедитесь, что имя целевого компьютера настроено. Если нет, выберите "..." и следуйте инструкциям в мастере настройки устройств , чтобы настроить удаленный целевой компьютер.

    • Перед развертыванием проверьте удаление предыдущих версий драйверов.

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

    • Введите имя драйвера в поле "Необязательные аргументы" (без кавычек вокруг имени).

    • Нажмите ОК.

Настройка подписи драйвера

  1. В Обозреватель решений выберите и удерживайте (или щелкните правой кнопкой мыши) проект MyV4PrintDriver, а затем выберите "Свойства".

  2. В окне "Страницы свойств MyV4PrintDriver" разверните узел "Свойства конфигурации" в левой области.

  3. Разверните подпись драйвера, а затем выберите "Общие".

  4. В правой области убедитесь, что для режима входа задано значение Test Sign.

  5. Выберите "Тестовый сертификат", а затем выберите "Создать тестовый сертификат" в раскрывающемся списке.

  6. Выберите TimeStampServer, а затем выберите Verisign в раскрывающемся списке.

  7. Нажмите ОК.

Создание и развертывание драйвера

  1. В Обозреватель решений выберите и удерживайте (или щелкните правой кнопкой мыши) решение MyV4PrintDriver (2 проекта) и выберите "Создать решение".

  2. После завершения процесса сборки драйвер будет автоматически установлен. Убедитесь, что в окне вывода отсутствуют ошибки.

Тестирование драйвера

Создайте очередь печати с помощью подключаемого модуля или мастера добавления принтера.

Дополнительные сведения о INF-файлах драйвера принтера версии 4 см. в разделе INF драйвера V4.

В дополнение к файлам в предыдущей таблице обратите внимание, что была создана папка фильтра отрисовки MyV4PrintDriver. Это шаблон проекта фильтра отрисовки, и он обеспечивает хорошую основу для создания фильтра отрисовки XPS и файла конфигурации конвейера фильтра XPS. Дополнительные сведения о фильтрах отрисовки XPS см. в статье XPSDrv Render Module.