Создание библиотеки DLL графики принтера

Внимание

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

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

При создании библиотеки DLL графики принтера следует учитывать следующие различия между библиотеками DLL, предназначенными для выполнения в пользовательском режиме и предназначенных для выполнения в режиме ядра.

В Windows Vista графические библиотеки DLL принтера могут выполняться только в пользовательском режиме. Дополнительные сведения см. в разделе "Выбор пользовательского режима" или режима ядра.

Правила создания библиотеки DLL графики принтера

Библиотека DLL графики в режиме пользователя Библиотека DLL графики в режиме ядра
Задайте TARGETTYPE=DYNLINK в исходном файле. Задайте TARGETTYPE=GDI_DRIVER в исходном файле.
Макрос препроцессора USERMODE_DRIVER должен быть определен в исходных файлах перед включением winddi.h. Макрос препроцессора USERMODE_DRIVER не должен быть определен.
Модули объектов должны быть связаны с библиотеками импорта umpdddi.lib и gdi32.lib. Модули объектов должны быть связаны с библиотекой импорта win32k.lib.
Функция DrvQueryDriverInfo должна возвращать значение TRUE для DRVQUERY_USERMODE. Функция DrvQueryDriverInfo должна возвращать false для DRVQUERY_USERMODE. (Кроме того, функция может быть опущена.)