Функции управления профилями
Функции управления профилями
Следующие функции API полезны в управлении профилями.
Функция | Описание |
---|---|
AssociateColorProfileWithDeviceW | Связывает указанный цветной профиль с указанным устройством. |
[CreateProfileFromLogColorSpaceW]((/windows/win32/api/icm/nf-icm-createprofilefromlogcolorspacew) | Преобразует логическое цветовое пространство в профиль устройства. |
ОтсоединениеColorProfileFromDeviceW | Отменяет связывание указанного профиля цвета с указанным устройством на указанном компьютере. |
EnumColorProfilesW | Перечисляет все профили, удовлетворяющие заданным критериям перечисления. |
GetColorDirectoryW | Извлекает путь к каталогу Windows COLOR на указанном компьютере. |
GetDeviceGammaRamp | Получает гамма-пандус из прямых цветовых досок. |
GetStandardColorSpaceProfileW | Извлекает профиль цвета, зарегистрированный для указанного стандартного цветового пространства. |
InstallColorProfileW | Устанавливает заданный профиль для использования на указанном компьютере. Профиль также копируется в каталог COLOR. |
RegisterCMMW | Связывает указанное значение идентификации с указанной библиотекой динамического канала модуля управления цветами (DLL CMM). Когда этот идентификатор отображается в цветовом профиле, Windows может найти соответствующий CMM, чтобы создать преобразование. |
SetDeviceGammaRamp | Задает гамма-пандус на прямых цветовых досках. |
SetStandardColorSpaceProfileW | Регистрирует указанный профиль для заданного стандартного цветового пространства. Профиль можно запрашивать с помощью GetStandardColorSpaceProfileW. |
UninstallColorProfileW | Удаляет указанный цветной профиль с указанного компьютера. Связанные файлы при необходимости удаляются из системы. |
Отмена регистрации | Отсообляет указанное значение идентификатора из заданной библиотеки динамического канала управления цветом (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, которые дополнены для предоставления дополнительных функций для изменения кода приложения.
Профили содержат сведения, используемые алгоритмами обработки цветов для преобразования цвета между различными цветовыми пространствами. Управление профилями позволяет запрашивать и указывать, какие профили используются на разных этапах моделью обработки цветов для управления цветными выходными данными различных периферийных устройств с различными цветовыми характеристиками.
Управление профилями предоставляет следующий набор функций:
- Установка цветовых профилей для использования в системе.
- Связывание одного или нескольких установленных цветовых профилей с любым конкретным устройством.
- Выбор цветового профиля по умолчанию определенного типа среди профилей, доступных для использования на определенном этапе обработки цветов. Это может быть устройство среди профилей, связанных с ним, или среди профилей, установленных в системе, а не для конкретного устройства.
- Перечисление цветовых профилей, удовлетворяющих определенным критериям для профилей, установленных в системе.
Расширения имени файла профиля WCS : CDMP для IP-адресов, .camp для CAMPs и GMMP для GMMPs.
управление профилями пользователей и включение выполнения в контексте LUA
Цель проектирования, описанного в текущем документе, выглядит следующим образом:
- Устаревшая реализация ICM2 не поддерживает управление профилями пользователей. Разные пользователи не могут иметь собственные параметры профиля. В Vista инфраструктура управления профилями WCS позволяет пользователям настраивать отдельные параметры профиля для большинства функций.
- Все устаревшие API управления профилями ICM2 изменяют параметры всей системы и требуют прав администратора. В Windows Vista все пользователи выполняются в параметрах учетной записи пользователя с наименьшими привилегиями (LUA) большую часть времени, а администраторы могут выборочно повышать привилегии для запуска приложений, изменяющих системные параметры. В управлении профилями WCS все параметры профиля для каждого пользователя настраиваются в контексте LUA. Приложения управления профилями могут выполняться в качестве параметров LUA, увеличив их область использования и гарантируя, что безопасность системы не скомпрометирована.
Управление профилями в Vista обеспечивает следующие улучшения по сравнению с устаревшей инфраструктурой ICM2:
- Он обеспечивает связь профилей с устройствами, параметрами профиля по умолчанию и перечислением профилей как в пределах пользователя, так и в системной области.
- Установка профиля остается системной и требует прав администратора. Это соответствует установке профиля во время установки устройства, так как установка устройства является системной и требует прав администратора.
Можно ли устанавливать устройства из контекста LUA в частности, что поддерживается для этого класса устройства. Например, в Vista можно установить принтер из контекста LUA, если пользователю было предоставлено право копировать файлы в хранилище драйверов администратором домена с помощью политик хранилища драйверов. Инфраструктура управления цветом профилей не требует ничего особенного в этом отношении, так как установка происходит в контексте spooler.
- Изменение параметров профиля в области пользователя можно сделать в контексте 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) и комбинации подтипов в качестве глобального значения по умолчанию${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
Get/Set ICC profile as global RGB или custom working space profile. См. примечание.
CPT_ICC COLORPROFILETYPE и CPT_DMP являются взаимоисключающими. Профиль цвета по умолчанию, заданный для заданного рабочего пространства (RGB или Custom), может быть либо профилем ICC, либо профилем DMP, но не обоими.
CPT_DMP
CPST_NONE
Получение и установка профиля DMP по умолчанию, связанного с устройством
CPST_RGBWorkingSpace или CPST_CustomWorkingSpace
Получение или установка профиля DMP в качестве глобального RGB или пользовательского рабочего пространства. См. примечание.
CPT_ICC COLORPROFILETYPE и CPT_DMP являются взаимоисключающими. Профиль цвета по умолчанию, заданный для заданного рабочего пространства (RGB или Custom), может быть либо профилем ICC, либо профилем DMP, но не обоими.
Заметка
Если wcsSetDefaultColorProfile вызывается для задания профиля DMP в качестве профиля по умолчанию для рабочего пространства RGB или настраиваемого рабочего пространства, допустимы только профиль DMP типа RGBVirtualDevice, LCD или 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 управления профилями
API ${ROWSPAN2}$Legacy ICM2 для операций, поддерживающих только область управления профилями на уровне системы в Vista (установка, удаление и получение каталога цветов). Они вызывают уровень хранилища конфигурации с соответствующей областью хранения.${REMOVE}$
Устаревший API ICM2 для операций, поддерживающих область управления профилями текущего и текущего пользователя в Vista (все операции, кроме установки, удаления и получения каталога цветов). Они неявно работают в области текущего пользователя и вызывают новый API WCS с областью управления профилями в качестве текущего пользователя.
Новый API WCS с поддержкой системной и текущей области управления профилями пользователей. Они вызывают уровень хранилища конфигурации с соответствующей областью хранения.
Уровень хранилища конфигурации управления профилями
Подпрограммы глобальной конфигурации независимо от устройств
Подпрограммы конфигурации для конкретного устройства
${ROWSPAN3}$Profile установка и управление параметрами профилей по умолчанию независимо от устройства, поддерживаемые в области хранилища на уровне системы и текущего пользователя.${REMOVE}$
Управление параметрами профиля для конкретного устройства и устройства по умолчанию, поддерживаемые в области хранилища на уровне системы и текущего пользователя.
уровень хранилища Device-Specific
Печать конкретного хранилища
Отображение определенного хранилища
Запись определенного хранилища
Устаревшие API ICM2 для операций, поддерживающих только область управления профилями на уровне системы в Vista, не имеют изменений в поведении. Операции установки и удаления попадают в эту категорию.
Устаревшие API ICM2 для операций, поддерживающих область управления профилями текущего и текущего пользователя, изменили свое поведение на запрос и настройку параметров текущего пользователя. Все операции, кроме установки и удаления, попадают в эту категорию.