Partilhar via


Funções de gerenciamento de perfil

Funções de gerenciamento de perfil

As seguintes funções de API são úteis no gerenciamento de perfis.

Função Descrição
AssociateColorProfileWithDeviceW Associa um perfil de cor especificado a um dispositivo especificado.
[CreateProfileFromLogColorSpaceW]((/windows/win32/api/icm/nf-icm-createprofilefromlogcolorspacew) Converte um espaço de cor lógico em um perfil de dispositivo .
DisassociateColorProfileFromDeviceW Desassocia um perfil de cor especificado a um dispositivo especificado em um computador especificado.
EnumColorProfilesW Enumera todos os perfis que satisfazem os critérios de enumeração fornecidos.
GetColorDirectoryW Recupera o caminho do diretório COLOR do Windows em uma máquina especificada.
GetDeviceGammaRamp Obtém a rampa gama de placas de exibição de cores diretas.
GetStandardColorSpaceProfileW Recupera o perfil de cor registrado para o padrão especificado espaço de cores.
InstallColorProfileW Instala um determinado perfil para uso em uma máquina especificada. O perfil também é copiado para o diretório COLOR.
RegisterCMMW Associa um valor de identificação especificado à biblioteca de vínculo dinâmico do módulo de gerenciamento de cores especificado (DLL CMM). Quando esse ID aparece em um perfil de cor, o Windows pode localizar o CMM correspondente para criar uma transformação.
SetDeviceGammaRamp Define a rampa gama em placas de exibição de cores diretas.
SetStandardColorSpaceProfileW Registra um perfil especificado para um determinado padrão espaço de cores. O perfil pode ser consultado usando GetStandardColorSpaceProfileW.
UninstallColorProfileW Remove um perfil de cor especificado de um computador especificado. Os ficheiros associados são opcionalmente eliminados do sistema.
Cancelar o registroCMMW Dissocia um valor de ID especificado de uma determinada biblioteca de vínculo dinâmico do módulo de gerenciamento de cores (DLL CMM).
WcsAssociateColorProfileWithDevice Associa um perfil de cor WCS especificado a um dispositivo especificado.
WcsCreateIccProfile Converte um perfil WCS em um perfil ICC.
WcsDisassociateColorProfileFromDevice Desassocia um perfil de cor WCS especificado com um dispositivo especificado em um computador especificado.
WcsEnumColorProfiles Enumera todos os perfis de cores que satisfazem os critérios de enumeração no escopo de gerenciamento de perfil especificado.
WcsEnumColorProfilesTamanho Retorna o tamanho, em bytes, do buffer exigido pela funçãoWcsEnumColorProfiles para enumerar perfis de cores.
WcsGetDefaultColorProfile Recupera o perfil de cor padrão para um dispositivo ou o padrão independente do dispositivo se o dispositivo não for especificado.
WcsGetDefaultColorProfileSize Retorna o tamanho, em bytes, do nome do perfil de cor padrão para um dispositivo, incluindo o terminador de NULL.
WcsGetDefaultRenderingIntent Recupera a intenção de renderização padrão no escopo de gerenciamento de perfil especificado.
WcsGetUsePerUserProfiles Determina se o usuário optou por usar uma lista de associação de perfil por usuário para o dispositivo especificado.
WcsOpenColorProfileW Cria um identificador para um perfil de cor especificado.
WcsSetDefaultColorProfile Define o nome do perfil de cor padrão do tipo de perfil especificado no escopo de gerenciamento de perfil especificado.
WcsSetDefaultRenderingIntent Define a intenção de renderização padrão no escopo de gerenciamento de perfil especificado.
WcsSetUsePerUserProfiles Permite que o usuário especifique se deseja usar uma lista de associação de perfil por usuário para o dispositivo especificado.

 

Funções de consumo de perfil

As APIs de consumo de perfil são aquelas APIs no ICM2 que usam perfis ICC ou WCS XML, identificadores de perfil ou intenções de renderização como parâmetros, e um conjunto de novas APIs para suporte de perfil WCS para código de gerenciamento de cores de aplicativo.

 

Perfis e Funções de Gestão de Perfis

O fluxo de trabalho de gerenciamento de perfil é baseado em APIs ICM2 existentes que são aumentadas para fornecer funcionalidade adicional para revisar o código do aplicativo.

Os perfis contêm informações usadas por algoritmos de processamento de cores para traduzir cores entre diferentes espaços de cores. O gerenciamento de perfis fornece uma maneira de consultar e especificar quais perfis são usados em diferentes estágios pelo modelo de processamento de cores para gerenciar a saída de cores de vários dispositivos periféricos com características de cores diversas.

A gestão de perfis fornece o seguinte conjunto de funcionalidades:

 

  1. Instalação de perfis de cores para uso no sistema.

 

  1. Associar um ou mais perfis de cores instalados a qualquer dispositivo específico.

 

  1. Escolher um perfil de cor padrão de um tipo específico entre os perfis disponíveis para uso em um estágio específico de processamento de cores. Isso pode ser para um dispositivo entre os perfis associados a ele, ou entre os perfis instalados no sistema e não específico do dispositivo.

 

  1. Enumeração de perfis de cores que satisfazem critérios específicos entre os perfis instalados no sistema.

As extensões de nome de arquivo de perfil WCS são ".cdmp" para DMPs, ".camp" para CAMPs e ".gmmp" para GMMPs.

 

gerenciamento de perfil por usuário e habilitação da execução no contexto LUA

O objetivo do design descrito no documento atual é o seguinte:

 

  1. A implementação herdada do ICM2 não fornece suporte para gerenciamento de perfil por usuário. Usuários diferentes não podem ter suas próprias configurações de perfil. No Vista, a infraestrutura de gerenciamento de perfil WCS permite que os usuários configurem configurações de perfil individuais para a maioria das funcionalidades.

 

  1. Todas as APIs de gerenciamento de perfil ICM2 herdadas modificam as configurações em todo o sistema e exigem privilégios administrativos. No Windows Vista, todos os usuários são executados em configurações de Conta de Usuário com privilégios mínimos (LUA) na maioria das vezes, e os administradores podem elevar o privilégio seletivamente para executar aplicativos que modificam as configurações de todo o sistema. No gerenciamento de perfil WCS, todas as configurações de perfil por usuário são configuráveis no contexto LUA. As aplicações de gestão de perfis podem ser executadas como definições LUA, aumentando o seu âmbito de utilização e garantindo que a segurança do sistema não é comprometida.

O gerenciamento de perfis no Vista fornece os seguintes aprimoramentos em relação à infraestrutura ICM2 herdada:

 

  1. Ele permite a associação de perfil com dispositivos, configurações de perfil padrão e enumeração de perfis no escopo por usuário e em todo o sistema.

 

  1. A instalação de um perfil permanece em todo o sistema e requer privilégios de administrador. Isso é consistente com a instalação do perfil durante a instalação do dispositivo porque a instalação do dispositivo é em todo o sistema e requer privilégios administrativos.

 

Se os dispositivos podem ser instalados a partir do contexto LUA é particular para o que é suportado para essa classe de dispositivo. Por exemplo, no Vista, é possível fazer a instalação da impressora a partir do contexto LUA se o usuário tiver recebido direitos para copiar arquivos para o armazenamento de driver por um administrador de domínio usando políticas de armazenamento de driver. A infraestrutura de gerenciamento de perfis de cores não precisa fazer nada de especial a esse respeito, já que a instalação acontece no contexto do spooler.

 

  1. A modificação das configurações de perfil no escopo por usuário pode ser feita no contexto LUA; modificações em todo o sistema exigiam privilégios administrativos. As operações de gerenciamento de perfil que exigem a leitura de informações de configuração podem ser feitas no contexto LUA para configurações por usuário e em todo o sistema.

O escopo do gerenciamento de perfil indica o escopo das operações realizadas; por utilizador ou em todo o sistema.

Para cada operação, é indicado se ela pode ser feita a partir do contexto LUA. Se uma operação não puder ser executada no contexto LUA, a API de gerenciamento de perfil correspondente retornará falha com acesso negado. Os aplicativos que usam a API, como o Painel de Controle de Gerenciamento de Cores, podem permitir que o usuário eleve para o contexto administrativo (usando OTS ou UI de consentimento) e, em seguida, chame a API do contexto elevado para que a operação seja bem-sucedida.

Funcionamento

Escopo do gerenciamento de perfis

Pré-condição

pós-condição

Executável no contexto LUA

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

Em todo o sistema

Perfil copiado, instalado no sistema e disponível para uso. O perfil é enumerável em todo o sistema e no escopo do usuário atual para todos os usuários.

Durante a instalação do driver de dispositivo, regido pelas políticas de instalação do driver. Não, caso contrário.

Usuário atual

Não suportado

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

Em todo o sistema

O perfil está instalado no sistema

Perfil desinstalado do sistema e, opcionalmente, excluído do repositório de perfis. O perfil não está mais disponível para uso e não pode ser enumerado em nenhum escopo.

Não

Usuário atual

Não suportado

Perfil de ${ROWSPAN2}$Associate com device${REMOVE}$

Em todo o sistema

O perfil está instalado e é do tipo ICC ou CDMP

O perfil está disponível para uso com o dispositivo por todos os usuários. Ele é enumerável, em todo o escopo do sistema e também no escopo do usuário atual para todos os usuários, conforme associado ao dispositivo.

Não

Usuário atual

O perfil está instalado. Não importa se o perfil já está associado ao dispositivo em todo o escopo do sistema e é do tipo ICC ou CDMP.

O perfil está disponível para uso com o dispositivo pelo usuário atual. Ele é enumerável apenas no escopo do usuário atual (a menos que haja uma associação em todo o sistema também) como associado ao dispositivo.

Sim

Perfil de ${ROWSPAN2}$Disassociate de device${REMOVE}$

Em todo o sistema

O perfil está associado ao dispositivo em todo o escopo do sistema e é do tipo ICC ou CDMP

O perfil não está mais disponível para uso (exceto para usuários que também têm essa associação em seu escopo de usuário atual). Não é enumerável no âmbito de todo o sistema. No entanto, ele pode ser enumerável no escopo do usuário atual para um usuário que tenha essa associação em seu escopo.

Não

Usuário atual

O perfil está associado ao dispositivo no âmbito do utilizador atual (independentemente de estar associado no âmbito de todo o sistema) e é do tipo ICC ou CDMP.

O perfil não está mais disponível para uso, ou enumerável como associado ao dispositivo, pelo usuário atual (a menos que também esteja associado no escopo de todo o sistema ao dispositivo).

Sim

${ROWSPAN2}$set perfil para um tipo (DMP ou ICC) como padrão para um dispositivo${REMOVE}$

Em todo o sistema

O perfil é do tipo ICC ou CDMP

O perfil é usado por padrão, para o tipo específico com o dispositivo, para todos os usuários, exceto para aqueles que substituíram essa configuração em seu escopo de usuário atual. (O perfil está instalado e associado ao dispositivo em todo o sistema, se esse ainda não for o caso.)

Não

Usuário atual

O perfil é do tipo ICC ou CDMP

O perfil é usado por padrão para o tipo específico com o dispositivo no caso de usuário atual, independentemente do padrão em todo o sistema para isso. (O perfil é instalado e associado ao dispositivo para o usuário atual, se esse ainda não for o caso.)

Sim, se o perfil já estiver instalado

${ROWSPAN2}$set perfil para uma combinação de tipo (ICC, DMP, CAMP, GMMP) e subtipo como padrão global${REMOVE}$

Em todo o sistema

Apenas perfis ICC e CDMP podem ser associados a dispositivos.

O perfil é usado por padrão para o tipo específico. Os usuários podem substituir essa configuração no escopo de usuário atual. (O perfil está instalado, se ainda não for esse o caso.)

Não

Usuário atual

Apenas perfis ICC e CDMP podem ser associados a dispositivos.

O perfil é usado por padrão para o tipo específico para o usuário atual. (O perfil está instalado, se ainda não for esse o caso.)

Sim, se o perfil já estiver instalado.

${ROWSPAN2}$Erase a substituição do usuário atual para uma configuração de perfil padrão específica, para que o padrão do sistema sempre seja usado (como fallback), mesmo para o escopo do usuário atual.${REMOVE}$

Em todo o sistema

Não aplicável

Usuário atual

Mesmo para consultas de usuário atual em configurações de perfil padrão, as configurações de todo o sistema são retornadas para uso.

Sim

${ROWSPAN2}$Enumerate perfis instalados que satisfaçam critérios específicos (como classe de dispositivo, classe de perfil, etc.)${REMOVER}$

Em todo o sistema

Somente perfis ICC e CDMP podem ser associados e enumerados para dispositivos.

Os perfis instalados e que satisfazem os critérios especificados no escopo de todo o sistema são enumerados.

Sim

Usuário atual

Apenas os perfis ICC e CDMP podem ser associados a dispositivos e, portanto, enumerados para dispositivos.

Os perfis que são instalados e satisfazem os critérios especificados no âmbito de todo o sistema são enumerados.

Sim

${ROWSPAN2}$Enumerate perfis associados a um dispositivo específico que satisfaçam critérios específicos, como classe de dispositivo e classe de perfil${REMOVE}$

Em todo o sistema

Somente perfis ICC e CDMP podem ser associados e enumerados para dispositivos.

Os perfis associados ao dispositivo no escopo de todo o sistema e que satisfazem os critérios especificados no escopo de todo o sistema são enumerados.

Sim

Usuário atual

Somente perfis ICC e CDMP podem ser associados e enumerados para dispositivos.

Os perfis que estão disponíveis como associados ao dispositivo no escopo do usuário atual, que inclui as associações de todo o sistema e satisfaz os critérios especificados no escopo do usuário atual são enumerados.

Sim

 

Os tipos de perfil de cor válidos são fornecidos pela enumeração COLORPROFILETYPE.

Os subtipos de perfil de cor válidos são fornecidos pela enumeração COLORPROFILESUBTYPE.

As combinações válidas de tipo/subtipo de perfil são mostradas na tabela a seguir.

COLORPROFILETYPE

COLORPROFILESUBTYPE válido

Observações

Padrão do dispositivo

Padrão global

Utilização prevista

Utilização prevista

CPT_ICC

CPST_NONE

Obter/definir perfil ICC padrão associado a um dispositivo

CPST_RGBWorkingSpace ou CPST_CustomWorkingSpace

Obter/Definir perfil ICC como RGB global ou perfil de espaço de trabalho personalizado. Ver nota.

Os CPT_ICC e CPT_DMP COLORPROFILETYPE são mutuamente exclusivos. O perfil de cor padrão definido para um determinado espaço de trabalho (RGB ou Personalizado) pode ser um perfil ICC ou um perfil DMP, mas não ambos.

CPT_DMP

CPST_NONE

Obter/definir perfil DMP padrão associado a um dispositivo

CPST_RGBWorkingSpace ou CPST_CustomWorkingSpace

Obter/Definir perfil DMP como RGB global ou perfil de espaço de trabalho personalizado. Ver nota.

Os CPT_ICC e CPT_DMP COLORPROFILETYPE são mutuamente exclusivos. O perfil de cor padrão definido para um determinado espaço de trabalho (RGB ou Personalizado) pode ser um perfil ICC ou um perfil DMP, mas não ambos.

 

Observação

Quando WcsSetDefaultColorProfile é chamado para definir um perfil DMP como o perfil padrão para o espaço de trabalho RGB ou um espaço de trabalho personalizado, somente um perfil DMP do tipo RGBVirtualDevice, LCD ou CRT é válido.

 

Quando WcsSetDefaultColorProfile é chamado para definir um perfil ICC como o perfil padrão para o espaço de trabalho RGB ou um espaço de trabalho personalizado, somente um perfil ICC cuja classe é "spac" ou "disp" e cujo espaço de cor é "RGB" é válido.

 

A arquitetura é projetada de acordo com os requisitos das operações, conforme mencionado nas enumerações e tabelas acima.

Camada de API pública de gerenciamento de perfil

Como o escopo de gerenciamento de perfil não é suportado por APIs ICM2 herdadas, é necessário um novo conjunto de APIs de gerenciamento de perfil WCS que defina o escopo de gerenciamento de perfil como usuário atual ou em todo o sistema. ? As APIs ICM2 herdadas continuam a ter suporte para compatibilidade com versões anteriores e trabalham no escopo de gerenciamento de perfil implícito para a chamada. o APIs ICM2 que funcionam no escopo do usuário atual? Isso é para operações que são suportadas para todo o sistema e escopo de usuário atual no gerenciamento de perfil WCS. As APIs ICM2 herdadas chamam novas APIs WCS com escopo de gerenciamento de perfil como usuário atual. Isso faz sentido do ponto de vista do usuário porque permite configurações por usuário a partir de aplicativos herdados e também executa a maioria das operações no contexto LUA. o APIs ICM2 que funcionam em todo o sistema? Isso é para operações (perfis de instalação e perfis de desinstalação) que suportam apenas o escopo de todo o sistema. Nenhuma nova API de gerenciamento de perfil WCS é criada e as APIs existentes podem ser modificadas.

As implementações subjacentes das operações de gerenciamento de perfil funcionam nas seguintes entidades de dados de configuração para criar o contexto para algoritmos de processamento de cores para fornecer funcionalidades de gerenciamento de cores. São configurações específicas do dispositivo ou globais (independentes do dispositivo). o Dados de configuração específicos do dispositivo: ? Lista de perfis associados a um dispositivo específico. ? Perfil padrão para diferentes tipos de perfil associados a um dispositivo. ? Modo de correspondência de perfis usados para enumeração. o Dados de configuração global: ? Lista de perfis instalados no sistema. ? Perfil padrão global para diferentes tipos de perfil. ? As implementações subjacentes de armazenamento de dados de configuração levam em escopo de armazenamento para dados de configuração (independente do dispositivo ou específico do dispositivo), que podem ser em todo o sistema ou usuário atual. Isso é diferente do escopo de gerenciamento de perfis. Uma operação com escopo de gerenciamento de perfil de usuário atual pode causar uma leitura de um escopo de armazenamento em todo o sistema se a configuração de usuário atual para essa operação não estiver presente. ? A camada de API ICM2/WCS chama essa camada de armazenamento para obter e definir dados com escopo de armazenamento apropriado. A camada de armazenamento é transparente para o escopo de gerenciamento de perfil. A lógica para combinar dados de escopos de armazenamento do usuário atual e de todo o sistema para criar ou atualizar uma configuração de acordo com o escopo de gerenciamento de perfil especificado pelo chamador da API. Essa lógica está presente na camada da API ICM2/WCS.

Camada de armazenamento específica do dispositivo

O armazenamento para diferentes classes de dispositivos, como impressão, captura ou exibição, pode ser diferente entre si. Por exemplo, os dados de configuração de um dispositivo de impressão devem ser armazenados usando APIs de impressão padrão, como SetPrinterDataEx e GetPrinterDataEx, para permitir que os perfis sejam copiados e as configurações sejam transferidas para uma máquina cliente durante a conexão Apontar e Imprimir. ? Essa camada exporta a funcionalidade para abrir, armazenar, obter dados, definir dados e fechar armazenamento usando interfaces comuns predefinidas para que a camada de armazenamento de configuração de gerenciamento de perfil possa chamá-los, sendo transparente para a maneira como os dados são armazenados para esse dispositivo.

O diagrama a seguir ilustra essa arquitetura.

Camada de API pública de gerenciamento de perfis

${ROWSPAN2}$Legacy APIs ICM2 para operações que suportam apenas o escopo de gerenciamento de perfil em todo o sistema no Vista (instalar, desinstalar e obter diretório colorido). Eles chamam a camada de armazenamento de configuração com escopo de armazenamento apropriado.${REMOVE}$

API ICM2 herdada para operações que suportam o escopo de gerenciamento de perfil de usuário atual e em todo o sistema no Vista (todas as operações, exceto instalar, desinstalar e obter diretório de cores). Eles trabalham implicitamente no escopo do usuário atual e chamam a nova API WCS com escopo de gerenciamento de perfil como usuário atual.

Nova API WCS com suporte ao escopo de gerenciamento de perfil de usuário atual e em todo o sistema. Eles chamam a camada de armazenamento de configuração com escopo de armazenamento apropriado.

 

Camada de armazenamento de configuração de gerenciamento de perfis

Rotinas de configuração global independentes do dispositivo

Rotinas de configuração específicas do dispositivo

${ROWSPAN3}$Profile instalação e gerenciamento de configurações de perfil padrão independente do dispositivo, suportado no escopo de armazenamento de todo o sistema e do usuário atual.${REMOVE}$

Associação de dispositivos e gerenciamento de configurações de perfil padrão específicas do dispositivo, suportado no escopo de armazenamento de todo o sistema e do usuário atual.

Device-Specific Camada de armazenamento

Armazenamento específico de impressão

Armazenamento específico do ecrã

Capturar armazenamento específico

 

As APIs ICM2 herdadas para operações que suportam apenas o escopo de gerenciamento de perfil em todo o sistema no Vista não têm alterações no comportamento. As operações de instalação e desinstalação enquadram-se nesta categoria.

As APIs ICM2 herdadas para operações que suportam o escopo de gerenciamento de perfil de usuário atual e em todo o sistema têm seu comportamento alterado para consultar e definir as configurações do usuário atual. Todas as operações, exceto instalar e desinstalar, se enquadram nessa categoria.