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


Настраиваемые операции настройки принтера

Важно!

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

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

Чтобы обеспечить настраиваемые операции настройки принтера для принтеров, установленных с помощью Ntprint.dll , установщика класса принтеров Windows 2000 по умолчанию и более поздних версий, можно включить в INF-файл принтера запись VendorSetup INF.

Внимание!

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

Если вы планируете отображать элементы пользовательского интерфейса во время установки драйвера принтера, необходимо использовать запись VendorSetup INF. Однако следует использовать inf-запись VendorSetup , только если это необходимо. Существенный недостаток заключается в том, что его использование не позволяет обычным пользователям устанавливать принтер с Plug and Play (в этом случае пользователь должен быть администратором).

Невозможно установить устройство с помощью установки на стороне сервера, если драйвер устройства не подписан или если INF-файл драйвера (подписанный или неподписанный) содержит запись VendorSetup INF. Когда драйвер не подписан, программа установки добавляет 0x8000 к рангу, который был бы у драйвера, если бы он был подписанным драйвером. Если INF-файл драйвера содержит запись VendorSetup , программа установки определяет, что установка устройства требует взаимодействия с пользователем (что не может происходить при установке на стороне сервера), и останавливает установку.

Программа установки также останавливает установку на стороне сервера, если рейтинг драйвера 0x8000 или больше. Установка может продолжаться, когда пользователь с правами администратора входит в систему, и в этот момент программа установки перезапускает установку устройства в качестве установки на стороне клиента. Для драйвера, ранг которого 0x1000 или больше и, следовательно, не соответствует идентификатору оборудования, программа установки запускает мастер обнаружения нового оборудования в библиотеке DLL нового устройства, который предлагает пользователю установить драйвер.

Если INF-файл для подписанного драйвера содержит запись VendorSetup и ранг драйвера меньше 0x1000, программа установки не запускает мастер обнаружения нового оборудования. Дополнительные сведения см. в разделе Настройка выбора драйверов.

Формат записи VendorSetup выглядит следующим образом:

VendorSetup= FileName, FunctionName

Где FileName — это имя библиотеки DLL, содержащей функцию установки, а FunctionName — имя функции. Библиотека DLL должна быть установлена в каталоге %windir%\system32. Установщик класса принтеров вызывает функцию установки в этой библиотеке DLL, только если принтер установлен с помощью Plug and Play или мастера добавления принтеров. Функция установки не вызывается, если установлен только драйвер (например, с помощью мастера добавления драйвера принтера).

Чтобы скопировать один или несколько файлов в каталог %windir%\system32, можно добавить имя раздела, определенного inf-writer, в раздел INF DestinationDirs . В следующем примере в разделе OEMVendorFiles перечислены все файлы, которые необходимо скопировать.

[DestinationDirs]
OEMVendorFiles = 11
...
[OEMVendorFiles]
vendor.dll

Функция, указанная functionName, должна соответствовать следующему прототипу:

VOID WINAPIFunctionName(HWND hWnd, HINSTANCE hInstance, LPSTR lpszCmdLine, UINT nCmdShow);

Где FunctionName — это имя функции установки. Параметры функции и их описания приведены в следующей таблице.

Параметр Описание
hWnd Указывает дескриптор родительского окна.
hInstance Указывает дескриптор экземпляра вызывающего процесса.
lpszCmdLine Указывает строку ANSI, содержащую имя установленного принтера. Эта строка анализируется с помощью FunctionName.
nCmdShow Указывает способ отображения окна. Флаги, управляющие тем, как отображается окно, определены в Winuser.h.

Установщик класса принтеров вызывает функцию установки в качестве одного из заключительных шагов в операции установки.