Записи INF-файла принтера
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Чтобы приложение установки устанавливало принтер на сервере печати, оно должно вызвать функцию AddPrinterDriverEx средства spooler, чтобы загрузить файлы драйверов, а затем вызвать функцию AddPrinter spooler, чтобы сделать принтер доступным на сервере.
Для функции AddPrinterDriverEx требуется DRIVER_INFO_3 структура в качестве входных данных, а для функции AddPrinter требуется PRINTER_INFO_2 структура в качестве входных данных. Установщик класса принтера по умолчанию, Ntprint.dll, считывает INF-файлы принтера для получения строковых значений, которые необходимо поместить в эти структуры перед вызовом функций.
Набор записей INF-файла для драйверов принтера, которые Ntprint.dll распознают, определены. Эти записи имеют следующий формат:
Значение entryName =
Где EntryName — это строка, определяющая запись, и значение является строковым значением, назначенным записи.
В следующей таблице перечислены записи 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". | Нет. Не указан языковой монитор. | элемент pMonitorName структуры DRIVER_INFO_3 |
PrintProcessor | Имя обработчика печати, связанного с очередью принтера. См. раздел "Формат значения PrintProcessor". | Используется обработчик печати по умолчанию (WinPrint). | элемент pPrintProcessor структуры DRIVER_INFO_2 |
VendorSetup | Имя функции в предоставленной поставщиком библиотеке DLL, которая обрабатывает настраиваемые операции настройки принтера. | Нет. См . примечание 3, следующее за этой таблицей. | нет |
InboxVersionRequired | Минимальная допустимая версия для всех основных драйверов, на которые ссылается INF. Дополнительные сведения о inboxVersionRequired см . в директиве INF InboxVersionRequired. | нет | нет |
1 (DriverCategory): если INF-файл указывает категорию, это допустимые значения (от 0 до 5 соответственно) для указания категорий:
Категория драйверов | значение | Описание |
---|---|---|
PrintFax.Printer | 0 | Очередь печати, представляющая принтер, подключенный к компьютеру (через локальный или сетевой протокол), или прокси-сервер физического принтера на другом компьютере. Когда пользователь печатает на физическом принтере, результатом является бумага с документом, напечатанным на нем. |
PrintFax.Факс | 1 | Очередь печати, представляющая физическую или виртуальную факсимильную машину. Когда пользователь печатает на принтер факса, результат (возможно, после дальнейшего взаимодействия с пользователем) заключается в том, что факс отправляется. |
PrintFax.Printer.File | 2 | Очередь печати, которая создает документы обратимого копирования. Когда пользователь печатает на принтере файлов, пользователь должен сначала ввести имя файла, а затем spooler отправляет печатные выходные данные в этот файл. Для принтеров файлов всегда требуется имя файла, но не требуется никаких других входных данных пользователя. Если у пользователя нет возможности предоставить имя файла, приложение создает имя файла, которое становится доступным для spooler. Распространенными примерами принтеров файлов являются средство записи документов Microsoft XPS (MXDW) и записи PDF. |
PrintFax.Printer.Virtual | 3 | Очередь печати с драйвером, выполняющим некоторые операции с печатными данными, непрозрачными для очереди печати. Когда пользователь печатает на виртуальном принтере, некоторые возможные результаты включают в себя сохранение печатного документа где-либо на компьютере, отправку в другое приложение или отправку по электронной почте. Распространенный пример печати на виртуальном принтере — это сценарий, в котором печатный документ отправляется на принтер Microsoft Office OneNote. Когда пользователь выбирает печать на виртуальный принтер, может потребоваться дальнейшее взаимодействие с пользователем, инициированное драйвером или другим компонентом драйвера. Дополнительные сведения см. в разделе "Виртуальные принтеры" в INF-файлах принтера. |
PrintFax.Printer.Service | 4 | Очередь печати, представляющая службу печати. Когда пользователь выбирает печать в службу, результат (возможно, после дальнейшего взаимодействия с пользователем) заключается в том, что сторонняя служба печати получает печатное содержимое. Затем пользователь может перейти в физическое место для бизнеса, чтобы забрать печатные выходные данные. |
PrintFax.Printer.3D | 5 | Очередь печати, представляющая поток данных для трехмерного принтера. Если эта категория непреднамеренно указана для 2D-принтера (обычного принтера), 2D-принтер просто выводит 2D-содержимое потока данных. Если эта категория правильно указана для трехмерного принтера, но 2D-поток данных отправляется на трехмерный принтер, 3D-принтер не создаст выходные данные. |
Кроме того, обратите внимание, что драйверы печати версии 4 используют файл манифеста. Дополнительные сведения см . в манифесте драйвера версии 4.
Примечание.
2 (ExcludeFromSelect) — идентификатор устройства, которое не должно отображаться в диалоговом окне выбора устройства или мастере добавления принтера. Для принтеров это включает все записи PnP устройств с повторяющимися описаниями устройств в INF-файле; например, устройства с несколькими записями для инфракрасного и параллельного перечисления или для другой шины. Запись ExcludeFromSelect, в отличие от всех остальных в этой таблице, должна отображаться в разделе флагов элементов управления в INF-файле. Дополнительные сведения см. в разделе INF ControlFlags.
Примечание.
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.
Зависимые файлы
Зависимый файл — это файл драйвера принтера, включенный в раздел установки INF-файла принтера с 66000, но не назначенный файлам DriverFile, DataFile, ConfigFile или HelpFile.
В следующем примере показаны фрагменты из INF-файла, который устанавливает три зависимых файла путем копирования их в каталог драйвера принтера (т. е. в каталог, указанный 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 и настраиваемых компонентах см. в разделе "Установка настраиваемых компонентов драйвера" и двунаправленной схемы связи.
Операции с точками и печатью устанавливают файлы, зависящие от драйвера и драйвера, на клиенте.
Для каждой модели принтера можно указать не более 64 зависимых файлов.
Связанные статьи
Установка настраиваемых компонентов драйверов