Прочитать на английском

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


Создание базового драйвера принтера версии 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++ и правильной версией Windows 10 SDK.

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Перейдите в папку для созданных файлов драйверов. Например, если вы назвали проект MyV4PrintDriver, то по умолчанию файлы будут сохранены в следующей папке: Мои документы > Visual Studio 2019 > Projects > 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 содержит год и имя вашей компании. Замените символы YYYY на текущий год и замените символы <имя производителя> на имя вашей компании.

В строке 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 в [b]Обозреватель решений[/b], разверните [i]узел MyV4PrintDriver[/i].

Выберите "Файлы драйверов", а затем в окне "Свойства " просмотрите значение поля "Уникальный идентификатор ". Это идентификатор драйвера (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. В правой области выберите, затем щелкните строку <Редактировать...> в перечисленных файлах.

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

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

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

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

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

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

  3. Установите флажок для "MyV4PrintDriver Render Filter", а затем нажмите кнопку "OK".

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

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

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

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

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

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

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

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

    • Нажмите ОК.

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

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

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

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

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

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

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

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

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

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

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

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

Создайте очередь печати, используя или Plug and Play, или Мастер добавления принтера.

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

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