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


Записи INF-файла принтера

Важно!

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

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

Чтобы приложение установки установило принтер на сервере печати, оно должно вызвать функцию AddPrinterDriverEx в очереди очереди, чтобы загрузить файлы драйверов, а затем вызвать функцию AddPrinter средства печати, чтобы сделать принтер доступным на сервере.

Для функции AddPrinterDriverEx в качестве входных данных требуется структура DRIVER_INFO_3 , а для функции AddPrinter в качестве входных данных требуется структура PRINTER_INFO_2 . Установщик класса принтера windows 2000 или более поздней версии по умолчанию, Ntprint.dll, считывает INF-файлы принтера для получения строковых значений, которые должны быть помещены в эти структуры перед вызовом функций.

Определен набор записей INF-файла для драйверов принтера, которые Ntprint.dll распознает. Эти записи имеют следующий формат:

EntryName = Значение

Где EntryName — это строка, определяющая запись, а Value — строковое значение, назначенное записи.

В следующей таблице перечислены записи INF-файла, которые должны быть включены в INF-файлы принтера. Для каждой записи таблица содержит следующее:

  • Значение, которое должно быть присвоено записи.

  • Значение по умолчанию, которое Ntprint.dll использует, если запись не определена.

  • Элемент структуры, в который Ntprint.dll помещает указатель на входное значение.

Запись INF-файла Значение Значение по умолчанию (если запись не указана) Элемент структуры
ConfigFile Имя библиотеки DLL интерфейса принтера драйвера. Значение, указанное для DriverFile. Элемент pConfigFile структуры DRIVER_INFO_3
DataFile Имя файла данных, связанного с драйвером, например PPD-файла. Имя раздела драйвера в INF-файле. Элемент pDataFile структуры DRIVER_INFO_3
DefaultDataType Не используется с операционными системами на основе NT.
DriverCategory См . примечание 1 после этой таблицы. Если в INF-файле не указана категория драйвера (как и для большинства драйверов версии 3), предполагается, что категория драйвера — PrintFax.Printer. Нет
DriverFile Имя библиотеки DLL-библиотеки графики принтера драйвера. Имя раздела драйвера в INF-файле. Элемент pDriverPath структуры DRIVER_INFO_3
ExcludeFromSelect См . примечание 2 после этой таблицы. Нет Нет
HelpFile Имя файла справки библиотеки DLL интерфейса. Нет. Файл справки не указан. Элемент pHelpFile структуры DRIVER_INFO_3
LanguageMonitor Имя языкового монитора, связанного с драйвером принтера. См. раздел LanguageMonitor Value Format (Формат значений LanguageMonitor ). Нет. Языковой монитор не указан. Элемент pMonitorName структуры DRIVER_INFO_3
PrintProcessor Имя процессора печати, связанного с очередью принтера. См. раздел Формат значений PrintProcessor . Используется обработчик печати по умолчанию (WinPrint). Элемент pPrintProcessor структуры DRIVER_INFO_2
VendorSetup Имя функции в предоставленной поставщиком библиотеке DLL, которая обрабатывает настраиваемые операции настройки принтера. Нет. См . примечание 3 после этой таблицы. Нет
InboxVersionRequired Минимальная допустимая версия для всех основных драйверов, на которые ссылается INF. Дополнительные сведения о InboxVersionRequired см. в разделе Директива INboxVersionRequired. Нет Нет

1 (DriverCategory): Если INF-файл указывает категорию, для указания категорий можно указать следующие значения (от 0 до 5 соответственно):

Категория драйвера Значение Описание
PrintFax.Printer 0 Очередь печати, представляющая либо принтер, подключенный к компьютеру (через локальный или сетевой протокол), либо прокси-сервер для физического принтера на другом компьютере. Когда пользователь печатает на физическом принтере, результатом будет бумага с напечатанным на нем документом.
PrintFax.Fax 1 Очередь печати, представляющая физический или виртуальный факсимильный компьютер. Когда пользователь печатает на принтере факсов, результатом (возможно, после дальнейшего взаимодействия с пользователем) будет отправка факса.
PrintFax.Printer.File 2 Очередь печати, которая создает документы с обратимым копированием. Когда пользователь печатает на файловом принтере, он должен сначала ввести имя файла, а диспетчер очереди очереди отправляет в этот файл выходные данные. Для файловых принтеров всегда требуется имя файла, но не требуется вводить другие данные пользователем. Если у пользователя нет возможности указать имя файла, приложение создает имя файла, которое становится доступным для очереди. Распространенными примерами принтеров файлов являются средство записи документов Microsoft XPS (MXDW) и средство записи PDF.
PrintFax.Printer.Virtual 3 Очередь печати с драйвером, который выполняет некоторые операции с печатными данными, непрозрачными для очереди печати. Когда пользователь печатает на виртуальном принтере, некоторые возможные результаты включают в себя сохранение печатного документа где-то на компьютере, отправку в другое приложение или отправку по электронной почте. Распространенный пример печати на виртуальный принтер — это сценарий, в котором печатный документ отправляется на принтер Microsoft Office OneNote. Когда пользователь выбирает печать на виртуальном принтере, может потребоваться дальнейшее взаимодействие с пользователем, инициированное драйвером или другим компонентом драйвера. Дополнительные сведения см. в разделе Виртуальные принтеры в INF-файлах принтера.
PrintFax.Printer.Service 4 Очередь печати, представляющая службу печати. Когда пользователь выбирает печать в службу, в результате (возможно, после дальнейшего взаимодействия с пользователем) сторонняя служба печати получает печатное содержимое. Затем пользователь может перейти к физическому расположению компании, чтобы получить печатные выходные данные.
PrintFax.Printer.3D 5 Очередь печати, представляющая поток данных для трехмерного принтера. Если эта категория непреднамеренно указана для двухмерного принтера (обычного принтера), двухмерный принтер просто выводит двухмерное содержимое потока данных. Если эта категория указана правильно для трехмерного принтера, но поток двухмерных данных отправляется на трехмерный принтер, трехмерный принтер не создаст никаких выходных данных.

Также обратите внимание, что драйверы печати версии 4 используют файл манифеста. Дополнительные сведения см. в разделе Манифест драйвера версии 4.

Примечание

2 (ExcludeFromSelect):идентификатор устройства , который не должен отображаться в диалоговом окне Выбор устройства или в мастере добавления принтера. Для принтеров сюда входят все записи PnP устройств с повторяющимися описаниями устройств в INF-файле; например, устройства с несколькими записями для инфракрасного и параллельного перечисления или для другой шины. Запись ExcludeFromSelect, в отличие от всех остальных в этой таблице, должна отображаться в разделе Флаги управления INF-файла. Дополнительные сведения см. в разделе INF ControlFlags Section .

Примечание

3 (VendorSetup): если запись VendorSetup не указана, настраиваемые операции настройки не выполняются. В частности, во время установки процессора печати, монитора печати или драйвера принтера пользовательский интерфейс не разрешен, за исключением использования записи VendorSetup INF. Дополнительные сведения об этой записи см. в разделе Настраиваемые операции настройки принтера.

Важно!

VendorSetup теперь является нерекомендуемым и не должен использоваться новыми драйверами версии 3 или 4, которые вы разрабатываете. Эти сведения о VendorSetup предоставляются только для справки или для обслуживания существующих драйверов версии 3, которые уже используют эту директиву INF.

Записи INF-файла принтера обычно указываются в разделах данных INF-файла принтера. Примеры см. в разделе Примеры INF-файлов принтера.

Формат значения LanguageMonitor

Если запись LanguageMonitor включена в INF-файл принтера, формат значения выглядит следующим образом:

LanguageMonitor=" MonitorName , MonitorDLLName "

Где MonitorName — это текстовая строка, представляющая отображаемое имя монитора, а MonitorDLLName — имя файла библиотеки DLL монитора.

Формат значения PrintProcessor

Если запись PrintProcessor включена в INF-файл принтера, значение имеет следующий формат:

PrintProcessor=" PrintProcessorName , PrintProcessorDLLName "

Где PrintProcessorName — это текстовая строка, представляющая отображаемое имя обработчика печати, а PrintProcessorDLLName — имя файла библиотеки DLL.

Зависимые файлы

Для Windows 2000 и более поздних версий зависимый файл — это файл драйвера принтера, включенный в раздел установки INF-файла принтера с 66000, но не назначенный записям DriverFile, DataFile, ConfigFile или HelpFile.

В следующем примере показаны выдержки из INF-файла, который устанавливает три зависимых файла путем их копирования в каталог printer-driver (то есть в каталог, указанный параметром dirid 66000):

[Contoso]
%PRINTER_MODEL_123%=Contoso_Install_Section,LPTENUM\Contoso_1284.4_P29C5
...
[Contoso_Install_Section]
CopyFiles=@Contoso.ini,@Contoso.xml,@Contoso.dll
...
[DestinationDirs]
DefaultDestDir=66000
...
[Strings]
PRINTER_MODEL_123 = "Contoso Printer Model 123"

В этом примере Contoso.ini — inI-файл принтера, Contoso.xml — файл расширения bidi, а Contoso.dll — настраиваемый компонент. Дополнительные сведения о файлах INI принтера, файлах расширений bidi и настраиваемых компонентах см. в разделах Установка настраиваемых компонентов драйвера и Двунаправленная схема связи.

Операции point-and-print устанавливают на клиенте файлы драйвера и зависимые от драйвера.

Для каждой модели принтера можно указать не более 64 зависимых файлов.

Схема двунаправленного обмена данными

Раздел INF ControlFlags

Установка настраиваемых компонентов драйвера

Вывод и печать

Раздел установки INF-файла принтера

Манифест драйвера версии 4