Funções de gerenciamento de perfil

Funções de gerenciamento de perfil

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

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ógica em um perfil de dispositivo.
DisassociateColorProfileFromDeviceW Desassocia um perfil de cor especificado com um dispositivo especificado em um computador especificado.
EnumColorProfilesW Enumera todos os perfis que atendem aos critérios de enumeração especificados.
GetColorDirectoryW Recupera o caminho do diretório COLOR do Windows em um computador especificado.
GetDeviceGammaRamp Obtém a rampa gama das placas de exibição de cor direta.
GetStandardColorSpaceProfileW Recupera o perfil de cor registrado para o espaço de cor padrão especificado.
InstallColorProfileW Instala um determinado perfil para uso em um computador especificado. O perfil também é copiado para o diretório COLOR.
RegisterCMMW Associa um valor de identificação especificado à DLL (biblioteca de vínculo dinâmico) do módulo de gerenciamento de cores especificada. Quando essa ID aparece em um perfil de cor, o Windows pode localizar o CMM correspondente para criar uma transformação.
SetDeviceGammaRamp Define a rampa de gama em placas de exibição de cor direta.
SetStandardColorSpaceProfileW Registra um perfil especificado para um determinado espaço de cor padrão. O perfil pode ser consultado usando GetStandardColorSpaceProfileW.
UninstallColorProfileW Remove um perfil de cor especificado de um computador especificado. Opcionalmente, os arquivos associados são excluídos do sistema.
Cancelar o registroCMMW Dissocia um valor de ID especificado de uma determinada DLL (biblioteca de vínculo dinâmico) do módulo de gerenciamento de cores.
WcsAssociateColorProfileWithDevice Associa um perfil de cor WCS especificado a um dispositivo especificado.
WcsCreateIccProfile Converte um perfil do WCS em um perfil do ICC.
WcsDisassociateColorProfileFromDevice Desassocia um perfil de cor WCS especificado com um dispositivo especificado em um computador especificado.
WcsEnumColorProfiles Enumera todos os perfis de cor que atendem aos critérios de enumeração no escopo de gerenciamento de perfil especificado.
WcsEnumColorProfilesSize Retorna o tamanho, em bytes, do buffer exigido pela função WcsEnumColorProfiles para enumerar perfis de cor.
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 de perfil de cor padrão para um dispositivo, incluindo o terminador 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 deve 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 XML do ICC ou WCS, identificadores de perfil ou intenções de renderização como parâmetros e um conjunto de novas APIs para suporte de perfil do WCS para código de gerenciamento de cores do aplicativo.

 

Perfis e funções de gerenciamento de perfil

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 cor entre diferentes espaços de cores. O gerenciamento de perfil 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.

O gerenciamento de perfil fornece o seguinte conjunto de funcionalidades:

 

  1. Instalando 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íficos do dispositivo.

 

  1. Enumerando perfis de cores que atendem a critérios específicos entre os perfis instalados no sistema.

As extensões de nome de arquivo de perfil do 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

A meta do design descrito no documento atual é a seguinte:

 

  1. A implementação herdada do ICM2 não oferece suporte para o 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 do WCS permite que os usuários definam 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 lua (conta de usuário com privilégios mínimos) na maior parte do tempo, 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 do WCS, todas as configurações de perfil por usuário são configuráveis no contexto LUA. Os aplicativos de gerenciamento de perfil podem ser executados como configurações lua, aumentando seu escopo de uso e garantindo que a segurança do sistema não seja comprometida.

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

 

  1. Ele habilita 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 é de todo o sistema e requer privilégios administrativos.

 

Se os dispositivos podem ser instalados do contexto LUA é particular ao que é compatível com essa classe de dispositivo. Por exemplo, no Vista, é possível fazer a instalação da impressora do contexto LUA se o usuário recebeu direitos para copiar arquivos para o repositório de driver por um administrador de domínio usando políticas de armazenamento de driver. A infraestrutura de gerenciamento de perfil de cor não precisa fazer nada especial nesse sentido, pois a instalação ocorre 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 de gerenciamento de perfil indica o escopo das operações executadas; por usuário 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á uma falha com acesso negado. Aplicativos que usam a API, como o Gerenciamento de Cores Painel de Controle, podem permitir que o usuário eleve para o contexto administrativo (usando OTS ou interface do usuário de consentimento) e, em seguida, chamar a API do contexto elevado para que a operação seja bem-sucedida.

Operação

Escopo de gerenciamento de perfil

Pré-condição

Pós-condição

Executável no contexto LUA

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

Todo o sistema

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

Durante a instalação do driver de dispositivo, regido pelas políticas de instalação do driver. No, otherwise.

Usuário atual

Sem suporte

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

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 é enumerável em nenhum escopo.

Não

Usuário atual

Sem suporte

${ROWSPAN2}$Associate perfil com device${REMOVE}$

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, no escopo de todo o 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 no escopo de todo o sistema e é do tipo ICC ou CDMP.

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

Sim

${ROWSPAN2}$Disassociate perfil do dispositivo${REMOVE}$

Todo o sistema

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

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

Não

Usuário atual

O perfil está associado ao dispositivo no escopo do usuário atual (independentemente de ele ser associado no escopo de todo o sistema) e é do tipo ICC ou CDMP.

O perfil não está mais disponível para uso ou enumerável conforme associado ao dispositivo, pelo usuário atual (a menos que ele 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}$

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 é instalado e associado ao sistema de dispositivos 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 do usuário atual, independentemente do padrão em todo o sistema para isso. (O perfil está 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 um tipo (ICC, DMP, CAMP, GMMP) e uma combinação de subtipo como padrão global${REMOVE}$

Todo o sistema

Somente 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 do usuário atual. (O perfil está instalado, se esse ainda não for o caso.)

Não

Usuário atual

Somente 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 esse ainda não for 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}$

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 em todo o sistema são retornadas para uso.

Sim

${ROWSPAN2}$Enumerate perfis instalados que atendem a critérios específicos (como classe de dispositivo, classe de perfil etc.) ${REMOVE}$

Todo o sistema

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

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

Sim

Usuário atual

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

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

Sim

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

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 atendem aos 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 conforme associado ao dispositivo no escopo do usuário atual, que inclui as associações em todo o sistema e atende aos 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 de perfil/subtipo são mostradas na tabela a seguir.

COLORPROFILETYPE

COLORPROFILESUBTYPE válido

Observações

Padrão do dispositivo

Padrão Global

Uso pretendido

Uso pretendido

CPT_ICC

CPST_NONE

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

CPST_RGBWorkingSpace ou CPST_CustomWorkingSpace

Obtenha/defina o perfil ICC como RGB global ou perfil de espaço de trabalho personalizado. Consulte a observação.

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 o perfil DMP padrão associado a um dispositivo

CPST_RGBWorkingSpace ou CPST_CustomWorkingSpace

Obtenha/defina o perfil DMP como RGB global ou perfil de espaço de trabalho personalizado. Consulte a observação.

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 foi 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 é compatível com APIs ICM2 herdadas, é necessário um novo conjunto de APIs de gerenciamento de perfil do WCS que define o escopo de gerenciamento de perfil como usuário atual ou de todo o sistema. ? As APIs ICM2 herdadas continuam com suporte para compatibilidade com versões anteriores e funcionam no escopo de gerenciamento de perfil implícito para a chamada. o APIs do ICM2 que funcionam no escopo do usuário atual? Isso é para operações compatíveis com o escopo de todo o sistema e do usuário atual no gerenciamento de perfil do WCS. As APIs ICM2 herdadas chamam novas APIs do WCS com escopo de gerenciamento de perfil como usuário atual. Isso faz sentido da perspectiva do usuário, pois isso permite configurações por usuário de aplicativos herdados e também executa a maioria das operações no contexto LUA. o APIs do ICM2 que funcionam no escopo de todo o sistema? Isso é para operações (perfis de instalação e perfis de desinstalação) que dão suporte apenas ao escopo em todo o sistema. Nenhuma nova APIs de gerenciamento de perfil do WCS é criada e as APIs existentes podem ser modificadas.

As implementações subjacentes das operações de gerenciamento de perfil funcionam nas entidades de dados de configuração a seguir para criar o contexto para algoritmos de processamento de cores para fornecer funcionalidades de gerenciamento de cores. Elas 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 do armazenamento de dados de configuração assumem o escopo de armazenamento para dados de configuração (independentes do dispositivo ou específicos do dispositivo), que podem ser de todo o sistema ou usuário atual. Isso é diferente do escopo de gerenciamento de perfil. Uma operação com escopo de gerenciamento de perfil do usuário atual poderá causar uma leitura de um escopo de armazenamento em todo o sistema se a configuração do usuário atual para essa operação não estiver presente. ? A camada de API do ICM2/WCS chama nessa camada de armazenamento para obter e definir dados com o 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 de todo o sistema e usuário atual para criar ou atualizar uma configuração de acordo com o escopo de gerenciamento de perfil especificado pelo chamador de API. Essa lógica está presente na camada de API do 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 um do outro. 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 um computador cliente durante a conexão Ponto e Impressão. ? Essa camada exporta a funcionalidade para abrir o repositório, obter dados, definir dados e fechar o repositório usando interfaces predefinidas comuns para que a camada de armazenamento de configuração de gerenciamento de perfil possa chamá-los enquanto é 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 Perfil

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

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

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

 

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

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 independentes do dispositivo, com suporte no escopo de armazenamento de todo o sistema e do usuário atual.${REMOVE}$

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

camada de Armazenamento Device-Specific

Imprimir armazenamento específico

Exibir armazenamento específico

Capturar armazenamento específico

 

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

APIs ICM2 herdadas para operações que dão suporte ao escopo de gerenciamento de perfil do 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 diferentes de instalar e desinstalar se enquadram nessa categoria.