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


Функции управления профилями

Функции управления профилями

Следующие функции API полезны при управлении профилями.

Функция Описание
AssociateColorProfileWithDeviceW Связывает указанный цветной профиль с указанным устройством.
[CreateProfileFromLogColorSpaceW] ((/windows/win32/api/icm/nf-icm-createprofilefromlogcolorspacew) Преобразует логическое цветовое пространство в профиль устройства.
Отмена связиColorProfileFromDeviceW Отменяет связь указанного цветового профиля с указанным устройством на указанном компьютере.
EnumColorProfilesW Перечисляет все профили, удовлетворяющие заданным критериям перечисления.
GetColorDirectoryW Извлекает путь к каталогу Windows COLOR на указанном компьютере.
GetDeviceGammaRamp Получает гамма-пандус из прямых цветных досок отображения.
GetStandardColorSpaceProfileW Извлекает профиль цвета, зарегистрированный для указанного стандартного цветового пространства.
InstallColorProfileW Устанавливает заданный профиль для использования на указанном компьютере. Профиль также копируется в каталог COLOR.
RegisterCMMW Связывает указанное значение идентификации с указанной библиотекой динамической компоновки модуля управления цветом (библиотека CMM DLL). Когда этот идентификатор отображается в цветовом профиле, Windows может найти соответствующий CMM, чтобы создать преобразование.
SetDeviceGammaRamp Задает гамма-пандус на досках отображения прямого цвета.
SetStandardColorSpaceProfileW Регистрирует указанный профиль для заданного стандартного цветового пространства. Профиль можно запросить с помощью GetStandardColorSpaceProfileW.
UninstallColorProfileW Удаляет указанный цветной профиль с указанного компьютера. Связанные файлы при необходимости удаляются из системы.
Отмена регистрацииCMMW Отменяет связь указанного значения идентификатора с библиотекой динамической компоновки модуля управления цветом (библиотека DLL CMM).
WcsAssociateColorProfileWithDevice Связывает указанный цветовой профиль WCS с указанным устройством.
WcsCreateIccProfile Преобразует профиль WCS в профиль ICC.
WcsDisassociateColorProfileFromDevice Отменяет связь указанного цветового профиля WCS с указанным устройством на указанном компьютере.
WcsEnumColorProfiles Перечисляет все цветовые профили, удовлетворяющие критериям перечисления в указанном область управления профилями.
WcsEnumColorProfilesSize Возвращает размер (в байтах) буфера, необходимого функции WcsEnumColorProfiles для перечисления цветовых профилей.
WcsGetDefaultColorProfile Извлекает профиль цвета по умолчанию для устройства или независимое от устройства значение по умолчанию, если устройство не указано.
WcsGetDefaultColorProfileSize Возвращает размер (в байтах) имени цветового профиля по умолчанию для устройства, включая признак конца NULL .
WcsGetDefaultRenderingIntent Извлекает намерение отрисовки по умолчанию в указанном область управления профилями.
WcsGetUsePerUserProfiles Определяет, решил ли пользователь использовать список сопоставлений профилей для каждого пользователя для указанного устройства.
WcsOpenColorProfileW Создает дескриптор для указанного цветового профиля.
WcsSetDefaultColorProfile Задает имя профиля цвета по умолчанию для указанного типа профиля в указанном область управления профилями.
WcsSetDefaultRenderingIntent Задает намерение отрисовки по умолчанию в указанном область управления профилями.
WcsSetUsePerUserProfiles Позволяет пользователю указать, следует ли использовать список сопоставлений профилей каждого пользователя для указанного устройства.

 

Функции потребления профилей

API потребления профилей — это API в ICM2, которые принимают ПРОФили ICC или WCS XML, дескрипторы профилей или намерения отрисовки в качестве параметров, а также набор новых API для поддержки профилей WCS для кода управления цветом приложения.

 

Профили и функции управления профилями

Рабочий процесс управления профилями основан на существующих API ICM2, которые дополнены для предоставления дополнительных функций для изменения кода приложения.

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

Управление профилями предоставляет следующий набор функциональных возможностей:

 

  1. Установка цветовых профилей для использования в системе.

 

  1. Связывание одного или нескольких установленных цветовых профилей с любым конкретным устройством.

 

  1. Выбор цветового профиля по умолчанию определенного типа среди профилей, доступных для использования на определенном этапе обработки цвета. Это может быть для устройства из связанных с ним профилей или профилей, установленных в системе, но не для конкретного устройства.

 

  1. Перечисление цветовых профилей, удовлетворяющих определенным критериям, среди профилей, установленных в системе.

Расширения имени файла профиля WCS — .cdmp для dmps, .camp для CAMP и .gmmp для GMMP.

 

Управление профилями на пользователя и включение выполнения в контексте LUA

Цель проектирования, описанная в текущем документе, заключается в следующем:

 

  1. Устаревшая реализация ICM2 не обеспечивает поддержку управления профилями для каждого пользователя. Разные пользователи не могут иметь собственные параметры профиля. В Vista инфраструктура управления профилями WCS позволяет пользователям настраивать отдельные параметры профиля для большинства функций.

 

  1. Все устаревшие API управления профилями ICM2 изменяют параметры на уровне системы и требуют прав администратора. В Windows Vista все пользователи большую часть времени работают с параметрами учетной записи пользователя с минимальными привилегиями (LUA), и администраторы могут выборочно повышать привилегии для запуска приложений, которые изменяют параметры всей системы. В управлении профилями WCS все параметры профиля для каждого пользователя настраиваются в контексте LUA. Приложения управления профилями могут выполняться как параметры LUA, повышая их область использования и гарантируя, что безопасность системы не будет скомпрометирована.

Управление профилями в Vista обеспечивает следующие улучшения по сравнению с устаревшей инфраструктурой ICM2:

 

  1. Он включает связь профилей с устройствами, параметры профиля по умолчанию и перечисление профилей как в область для пользователя, так и для всей системы.

 

  1. Установка профиля остается на уровне системы и требует прав администратора. Это согласуется с установкой профиля во время установки устройства, так как установка устройства выполняется на уровне системы и требует прав администратора.

 

Возможность установки устройств из контекста LUA определяется тем, что поддерживается для этого класса устройств. Например, в Vista можно выполнить установку принтера из контекста LUA, если администратор домена предоставил пользователю права на копирование файлов в хранилище драйверов с помощью политик хранилища драйверов. Инфраструктуре управления цветовым профилем не нужно делать никаких особых действий в этом отношении, так как установка выполняется в контексте очереди очереди.

 

  1. Изменение параметров профиля в область для каждого пользователя можно выполнить в контексте LUA; для внесения изменений на уровне системы требуются права администратора. Операции управления профилями, требующие чтения сведений о конфигурации, можно выполнять в контексте LUA как для параметров пользователя, так и для всей системы.

Область управления профилями указывает область выполняемых операций на уровне пользователя или системы.

Для каждой операции указывается, можно ли выполнить ее из контекста LUA. Если операция не может быть выполнена в контексте LUA, соответствующий API управления профилями возвращает ошибку с отказом в доступе. Приложения, использующие API, такие как управление цветом панель управления, могут позволить пользователю повысить уровень до административного контекста (с помощью OTS или пользовательского интерфейса согласия), а затем вызвать API из контекста с повышенными привилегиями, чтобы операция была успешной.

Операция

Область управления профилями

Предварительное условие

Пост-условие

Исполняемый файл в контексте LUA

${ROWSPAN2}$Install profile${REMOVE}$

На уровне системы

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

Во время установки драйвера устройства, регулируется политиками установки драйверов. Нет, в противном случае.

Текущий пользователь

Не поддерживается

${ROWSPAN2}$Uninstall profile${REMOVE}$

На уровне системы

Профиль установлен в системе

Профиль удаляется из системы и при необходимости удаляется из хранилища профилей. Профиль больше недоступен для использования и не перечисляется ни в одном область.

Нет

Текущий пользователь

Не поддерживается

${ROWSPAN2}$Associate профиль с устройством${REMOVE}$

На уровне системы

Профиль установлен и имеет тип ICC или CDMP

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

Нет

Текущий пользователь

Профиль установлен. Неважно, связан ли профиль с устройством в системных область и имеет тип ICC или CDMP.

Профиль доступен для использования с устройством текущим пользователем. Он перечисляется только в текущих пользовательских область (если не существует связи на уровне системы), связанной с устройством.

Да

${ROWSPAN2}$Disassociate профиль с устройства${REMOVE}$

На уровне системы

Профиль связан с устройством в системном область и имеет тип ICC или CDMP

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

Нет

Текущий пользователь

Профиль связан с устройством в область текущего пользователя (независимо от того, связано ли оно в системных область) и имеет тип ICC или CDMP.

Профиль больше недоступен для использования или перечисляется как связанный с устройством текущим пользователем (если он также не связан в системных область с устройством).

Да

${ROWSPAN2}$Set профиль для типа (DMP или ICC) по умолчанию для устройства${REMOVE}$

На уровне системы

Профиль имеет тип ICC или CDMP

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

Нет

Текущий пользователь

Профиль имеет тип ICC или CDMP

Профиль используется по умолчанию для конкретного типа устройства в случае текущего пользователя, независимо от системного значения по умолчанию. (Профиль установлен и связан с устройством для текущего пользователя, если это еще не так.)

Да, если профиль уже установлен

${ROWSPAN2}$Set профиль для сочетания типов (ICC, DMP, CAMP, GMMP) и подтипов как global default${REMOVE}$

На уровне системы

С устройствами можно связать только профили ICC и CDMP.

Профиль используется по умолчанию для конкретного типа. Пользователи могут переопределить этот параметр в область текущего пользователя. (Профиль установлен, если это еще не так.)

Нет

Текущий пользователь

С устройствами можно связать только профили ICC и CDMP.

Профиль используется по умолчанию для конкретного типа текущего пользователя. (Профиль установлен, если это еще не так.)

Да, если профиль уже установлен.

${ROWSPAN2}$Erase переопределение текущего пользователя для определенного параметра профиля по умолчанию, чтобы системное значение по умолчанию всегда использовалось (в качестве резервного) даже для текущего пользователя область.${REMOVE}$

На уровне системы

Неприменимо

Текущий пользователь

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

Да

${ROWSPAN2}$Enumerate установленные профили, удовлетворяющие определенным критериям (например, класс устройства, класс профиля и т. д.) ${REMOVE}$

На уровне системы

С устройствами можно связать и перечислить только профили ICC и CDMP.

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

Да

Текущий пользователь

Только профили ICC и CDMP могут быть связаны с устройствами и, таким образом, перечисляться для устройств.

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

Да

${ROWSPAN2}$Enumerate профилей, связанных с определенным устройством, удовлетворяющим определенным критериям, таким как класс устройства и класс профиля${REMOVE}$

На уровне системы

С устройствами можно связать и перечислить только профили ICC и CDMP.

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

Да

Текущий пользователь

С устройствами можно связать и перечислить только профили ICC и CDMP.

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

Да

 

Допустимые типы цветовых профилей предоставляются перечислением COLORPROFILETYPE.

Допустимые подтипы цветового профиля предоставляются перечислением COLORPROFILESUBTYPE.

Допустимые сочетания типа и подтипа профиля показаны в следующей таблице.

COLORPROFILETYPE

Допустимый COLORPROFILESUBTYPE

Примечания

По умолчанию для устройства

Глобальное значение по умолчанию

Предполагаемое использование

Предполагаемое использование

CPT_ICC

CPST_NONE

Получение или установка профиля ICC по умолчанию, связанного с устройством

CPST_RGBWorkingSpace или CPST_CustomWorkingSpace

Получение или установка профиля ICC в качестве глобального RGB или пользовательского профиля рабочего пространства. См. примечание.

CPT_ICC COLORPROFILETYPE и CPT_DMP являются взаимоисключающими. Цветовой профиль по умолчанию, заданный для заданного рабочего пространства (RGB или пользовательского), может быть профилем ICC или DMP, но не обоими.

CPT_DMP

CPST_NONE

Получение или установка профиля DMP по умолчанию, связанного с устройством

CPST_RGBWorkingSpace или CPST_CustomWorkingSpace

Получение или установка профиля DMP в качестве глобального профиля RGB или пользовательского рабочего пространства. См. примечание.

CPT_ICC COLORPROFILETYPE и CPT_DMP являются взаимоисключающими. Цветовой профиль по умолчанию, заданный для заданного рабочего пространства (RGB или пользовательского), может быть профилем ICC или DMP, но не обоими.

 

Примечание

При вызове WcsSetDefaultColorProfile для задания профиля DMP в качестве профиля по умолчанию для рабочего пространства RGB или пользовательского рабочего пространства допустим только профиль DMP типа RGBVirtualDevice, ЖК-дисплея или CRT.

 

При вызове WcsSetDefaultColorProfile для установки профиля ICC в качестве профиля по умолчанию для рабочего пространства RGB или пользовательского рабочего пространства, допустим только профиль ICC с классом spac или disp и цветовым пространством которого является RGB.

 

Архитектура разработана в соответствии с требованиями операций, как упоминалось в перечислениях и таблицах выше.

Уровень общедоступного API управления профилями

Так как область управления профилями не поддерживаются устаревшими API ICM2, требуется новый набор API управления профилями WCS, определяющий область управления профилями как системного или текущего пользователя. ? Устаревшие API ICM2 по-прежнему поддерживаются для обеспечения обратной совместимости и работают с область управления профилями, которые неявно поддерживаются для вызова. o API ICM2, которые работают с текущим пользователем область ? Это касается операций, которые поддерживаются как для всей системы, так и для область текущего пользователя в управлении профилями WCS. Устаревшие API ICM2 вызывают новые API WCS с область управления профилями в качестве текущего пользователя. Это имеет смысл с точки зрения пользователя, так как позволяет настраивать параметры для отдельных пользователей из устаревших приложений, а также выполнять большинство операций в контексте LUA. o API-интерфейсы ICM2, которые работают на всей системе область ? Это касается операций (установка профилей и профилей удаления), которые поддерживают только системные область. Новые API управления профилями WCS не создаются, и существующие API можно изменить.

Базовые реализации операций управления профилями работают со следующими сущностями данных конфигурации, чтобы создать контекст для алгоритмов обработки цвета, чтобы обеспечить функции управления цветом. Это параметры конкретного устройства или глобальные (независимые от устройства). o Данные конфигурации для конкретного устройства: ? Список профилей, связанных с определенным устройством. ? Профиль по умолчанию для различных типов профилей, связанных с устройством. ? Режим сопоставления профилей, используемых для перечисления. o Данные глобальной конфигурации: ? Список профилей, установленных в системе. ? Глобальный профиль по умолчанию для различных типов профилей. ? Базовые реализации хранилища данных конфигурации принимают в хранилище область для данных конфигурации (независимо от устройства или устройства), которые могут быть как системными, так и текущими пользователями. Это отличается от область управления профилями. Операция с область управления профилями текущего пользователя может вызвать чтение из область хранилища на уровне системы, если параметр текущего пользователя для этой операции отсутствует. ? Уровень API ICM2/WCS вызывает на этом уровне хранилища для получения и настройки данных с соответствующими область хранилища. Уровень хранилища прозрачен для управления профилями область. Логика объединения данных из областей хранилища текущего пользователя и всей системы для создания или обновления конфигурации в соответствии с область управления профилями, указанной вызывающим ОБЪЕКТОМ API. Эта логика присутствует на уровне API ICM2/WCS.

Уровень хранилища для конкретного устройства

Хранилище для различных классов устройств, таких как печать, захват или отображение, может отличаться друг от друга. Например, данные конфигурации для устройства печати должны храниться с помощью стандартных API печати, таких как SetPrinterDataEx и GetPrinterDataEx, чтобы обеспечить копирование профилей и передачу параметров на клиентский компьютер во время подключения "точка и печать". ? Этот уровень экспортирует функциональные возможности для открытия хранилища, получения данных, настройки данных и закрытия хранилища с помощью общих предварительно определенных интерфейсов, чтобы уровень хранилища конфигурации управления профилями можно было вызывать в них, обеспечивая прозрачность хранения данных для этого устройства.

Эта архитектура показана на следующей диаграмме.

Общедоступный уровень API управления профилями

${ROWSPAN2}$Legacy API ICM2 для операций, которые поддерживают только системное управление профилями область в Vista (установка, удаление и получение цветового каталога). Они вызывают уровень хранилища конфигурации с соответствующим область хранилища.${REMOVE}$

Устаревший API ICM2 для операций, поддерживающих управление профилями как всей системы, так и текущих пользователей, область в Vista (все операции, кроме операций установки, удаления и получения цветового каталога). Они неявно работают с область текущего пользователя и вызывают новый API WCS с область управления профилями в качестве текущего пользователя.

Новый API WCS с область поддержкой управления профилями пользователей в масштабах всей системы и текущих пользователей. Они вызывают уровень хранилища конфигурации с соответствующими область хранилища.

 

Уровень хранилища конфигурации управления профилями

Процедуры глобальной конфигурации, независимые от устройств

Процедуры настройки для конкретных устройств

${ROWSPAN3}$Profile установка и управление параметрами профиля, не зависящими от устройства, которые поддерживаются в системном и текущем пользовательском хранилище область.${REMOVE}$

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

Уровень хранилища Device-Specific

Печать определенного хранилища

Отображение определенного хранилища

Запись определенного хранилища

 

Устаревшие API ICM2 для операций, которые поддерживают только управление профилями на уровне системы область в Vista, не имеют изменений в поведении. Операции установки и удаления относятся к этой категории.

Устаревшие API-интерфейсы ICM2 для операций, которые поддерживают управление профилями как всей системы, так и текущих пользователей, область их поведение изменено для запроса и настройки параметров текущего пользователя. Все операции, кроме установки и удаления, относятся к этой категории.