Funzioni di gestione dei profili

Funzioni di gestione dei profili

Le funzioni API seguenti sono utili per la gestione dei profili.

Funzione Descrizione
AssociateColorProfileWithDeviceW Associa un profilo di colore specificato a un dispositivo specificato.
[CreateProfileFromLogColorSpaceW] ((/windows/win32/api/icm/nf-icm-createprofilefromlogcolorspacew) Converte uno spazio di colore logico in un profilo del dispositivo.
DisassociateColorProfileFromDeviceW Annulla l'accesso a un profilo di colore specificato con un dispositivo specificato in un computer specificato.
EnumColorProfilesW Enumera tutti i profili che soddisfano i criteri di enumerazione specificati.
GetColorDirectoryW Recupera il percorso della directory Color di Windows in un computer specificato.
GetDeviceGammaRamp Ottiene la rampa gamma dalle schede di visualizzazione dei colori dirette.
GetStandardColorSpaceProfileW Recupera il profilo di colore registrato per lo spazio colore standard specificato.
InstallColorProfileW Installa un determinato profilo da usare in un computer specificato. Il profilo viene copiato anche nella directory COLOR.
RegisterCMMW Associa un valore di identificazione specificato alla libreria di collegamento dinamica del modulo di gestione colori specificata (DLL CMM). Quando questo ID viene visualizzato in un profilo di colore, Windows può quindi individuare il CMM corrispondente in modo da creare una trasformazione.
SetDeviceGammaRamp Imposta la rampa gamma su schede di visualizzazione di colori dirette.
SetStandardColorSpaceProfileW Registra un profilo specificato per uno spazio colore standard specificato. Il profilo può essere sottoposto a query tramite GetStandardColorSpaceProfileW.
DisinstallaColorProfileW Rimuove un profilo di colore specificato da un computer specificato. I file associati vengono eliminati facoltativamente dal sistema.
Annullare la registrazioneCMMW Dissocia un valore ID specificato da una determinata libreria di gestione dei colori (DLL CMM).
WcsAssociateColorProfileWithDevice Associa un profilo di colore WCS specificato a un dispositivo specificato.
WcsCreateIccProfile Converte un profilo WCS in un profilo ICC.
WcsDisassociateColorProfileFromDevice Annulla l'accesso a un profilo di colore WCS specificato con un dispositivo specificato in un computer specificato.
WcsEnumColorProfiles Enumera tutti i profili di colore che soddisfano i criteri di enumerazione nell'ambito di gestione del profilo specificato.
WcsEnumColorProfilesSize Restituisce le dimensioni, in byte, del buffer richiesto dalla funzione WcsEnumColorProfiles per enumerare i profili di colore.
WcsGetDefaultColorProfile Recupera il profilo di colore predefinito per un dispositivo o il valore predefinito indipendente dal dispositivo se il dispositivo non è specificato.
WcsGetDefaultColorProfileSize Restituisce le dimensioni, in byte, del nome del profilo di colore predefinito per un dispositivo, incluso il terminatore NULL .
WcsGetDefaultRenderingIntent Recupera la finalità di rendering predefinita nell'ambito di gestione del profilo specificato.
WcsGetUsePerUserProfiles Determina se l'utente ha scelto di usare un elenco di associazione per profilo utente per il dispositivo specificato.
WcsOpenColorProfileW Crea un handle in un profilo di colore specificato.
WcsSetDefaultColorProfile Imposta il nome del profilo di colore predefinito del tipo di profilo specificato nell'ambito di gestione del profilo specificato.
WcsSetDefaultRenderingIntent Imposta la finalità di rendering predefinita nell'ambito di gestione del profilo specificato.
WcsSetUsePerUserProfiles Consente all'utente di specificare se usare un elenco di associazione per profilo utente per il dispositivo specificato.

 

Funzioni di utilizzo del profilo

Le API di utilizzo del profilo sono quelle API in ICM2 che accettano profili XML ICC o WCS, handle del profilo o finalità di rendering come parametri e un set di nuove API per il supporto del profilo WCS per il codice di gestione dei colori dell'applicazione.

 

Funzioni di gestione profili e profili

Il flusso di lavoro di gestione dei profili si basa sulle API ICM2 esistenti che vengono aumentate per offrire funzionalità aggiuntive per la revisione del codice dell'applicazione.

I profili contengono informazioni usate dagli algoritmi di elaborazione dei colori per tradurre il colore tra spazi di colore diversi. La gestione dei profili consente di eseguire query e specificare quali profili vengono usati in fasi diverse dal modello di elaborazione dei colori per gestire l'output dei colori di vari dispositivi periferici con caratteristiche di colore diverse.

La gestione dei profili fornisce il set di funzionalità seguente:

 

  1. Installazione dei profili di colore da usare nel sistema.

 

  1. Associazione di uno o più profili di colore installati con qualsiasi dispositivo specifico.

 

  1. Scelta di un profilo di colore predefinito di un tipo specifico tra i profili disponibili per l'uso in una particolare fase di elaborazione dei colori. Questo potrebbe essere per un dispositivo tra i profili associati a esso o tra i profili installati nel sistema e non specifici del dispositivo.

 

  1. Enumerazione dei profili di colore che soddisfano criteri specifici tra i profili installati nel sistema.

Le estensioni del nome file del profilo WCS sono "cdmp" per i provider di dominio, ".camp" per CAMP e ".gmmp" per i GMMP.

 

Gestione del profilo utente e abilitazione dell'esecuzione nel contesto LUA

L'obiettivo della progettazione descritta nel documento corrente è il seguente:

 

  1. L'implementazione di ICM2 legacy non fornisce supporto per la gestione dei profili utente. Gli utenti diversi non possono avere le proprie impostazioni di profilo. In Vista, l'infrastruttura di gestione dei profili WCS consente agli utenti di configurare le singole impostazioni del profilo per la maggior parte delle funzionalità.

 

  1. Tutte le API di gestione dei profili ICM2 legacy modificano le impostazioni a livello di sistema e richiedono privilegi amministrativi. In Windows Vista tutti gli utenti eseguono nella maggior parte delle impostazioni dell'account utente con privilegi minimi e gli amministratori possono elevare i privilegi in modo selettivo per eseguire applicazioni che modificano le impostazioni a livello di sistema. Nella gestione dei profili WCS tutte le impostazioni del profilo utente sono configurabili nel contesto LUA. Le applicazioni di gestione dei profili possono essere eseguite come impostazioni LUA, aumentando l'ambito dell'uso e garantendo che la sicurezza del sistema non venga compromessa.

La gestione dei profili in Vista offre i miglioramenti seguenti rispetto all'infrastruttura ICM2 legacy:

 

  1. Consente l'associazione del profilo ai dispositivi, alle impostazioni predefinite del profilo e all'enumerazione dei profili sia a livello di utente che a livello di sistema.

 

  1. L'installazione di un profilo rimane a livello di sistema e richiede privilegi di amministratore. Ciò è coerente con l'installazione del profilo durante l'installazione del dispositivo perché l'installazione del dispositivo è a livello di sistema e richiede privilegi amministrativi.

 

Se i dispositivi possono essere installati dal contesto LUA è particolare a ciò che è supportato per tale classe di dispositivo. In Vista, ad esempio, è possibile eseguire l'installazione della stampante dal contesto LUA se all'utente è stato concesso il diritto di copiare i file nell'archivio driver da un amministratore di dominio usando i criteri dell'archivio driver. L'infrastruttura di gestione del profilo colore non deve eseguire alcuna operazione speciale in questo senso, poiché l'installazione avviene nel contesto dello spooler.

 

  1. La modifica delle impostazioni del profilo nell'ambito per utente può essere eseguita nel contesto LUA; le modifiche a livello di sistema richiedono privilegi amministrativi. Le operazioni di gestione dei profili che richiedono la lettura delle informazioni di configurazione possono essere eseguite nel contesto LUA sia per ogni utente che per le impostazioni a livello di sistema.

L'ambito di gestione del profilo indica l'ambito delle operazioni eseguite; per utente o a livello di sistema.

Per ogni operazione, viene indicato se può essere eseguita dal contesto LUA. Se non è possibile eseguire un'operazione nel contesto LUA, l'API di gestione del profilo corrispondente restituisce un errore con accesso negato. Le applicazioni che usano l'API, ad esempio Gestione colori Pannello di controllo, possono consentire all'utente di elevare privilegi al contesto amministrativo (usando OTS o l'interfaccia utente del consenso) e quindi chiamare l'API dal contesto con privilegi elevati in modo che l'operazione abbia esito positivo.

Operazione

Ambito di gestione dei profili

Pre-condizione

Post-condizione

Eseguibile nel contesto LUA

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

A livello di sistema

Profilo copiato, installato nel sistema e disponibile per l'uso. Il profilo è enumerabile nell'ambito di sistema e utente corrente per tutti gli utenti.

Durante l'installazione del driver di dispositivo, disciplinato dai criteri di installazione dei driver. No, in caso contrario.

Utente corrente

Non supportato

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

A livello di sistema

Il profilo è installato nel sistema

Profilo disinstallato dal sistema e, facoltativamente, eliminato dall'archivio profili. Il profilo non è più disponibile per l'uso e non è enumerabile in alcun ambito.

No

Utente corrente

Non supportato

${ROWSPAN2}$Associate profilo con device${REMOVE}$

A livello di sistema

Il profilo è installato ed è di tipo ICC o CDMP

Il profilo è disponibile per l'uso con il dispositivo da parte di tutti gli utenti. È enumerabile, nell'ambito a livello di sistema e anche nell'ambito utente corrente per tutti gli utenti, come associato al dispositivo.

No

Utente corrente

Il profilo è installato. Non importa se il profilo è già associato al dispositivo nell'ambito di sistema ed è di tipo ICC o CDMP.

Il profilo è disponibile per l'uso con il dispositivo dall'utente corrente. È enumerabile solo nell'ambito utente corrente (a meno che non sia presente anche un'associazione a livello di sistema) e associata al dispositivo.

${ROWSPAN2}$Disassociate profilo da device${REMOVE}$

A livello di sistema

Il profilo è associato al dispositivo nell'ambito a livello di sistema ed è di tipo ICC o CDMP

Il profilo non è più disponibile per l'uso (ad eccezione degli utenti che hanno questa associazione anche nell'ambito utente corrente). Non è enumerabile nell'ambito a livello di sistema. Potrebbe essere enumerabile nell'ambito dell'utente corrente, tuttavia, per un utente che ha questa associazione nell'ambito.

No

Utente corrente

Il profilo è associato al dispositivo nell'ambito utente corrente (indipendentemente dal fatto che sia associato nell'ambito a livello di sistema) ed è di tipo CPI o CDMP.

Il profilo non è più disponibile per l'uso o enumerabile come associato al dispositivo, dall'utente corrente (a meno che non sia associato anche nell'ambito a livello di sistema al dispositivo).

${ROWSPAN2}$Set profilo per un tipo (DMP o ICC) come impostazione predefinita per un dispositivo${REMOVE}$

A livello di sistema

Il profilo è di tipo ICC o CDMP

Il profilo viene usato per impostazione predefinita, per il tipo specifico con il dispositivo, per tutti gli utenti ad eccezione di quelli che hanno eseguito l'override di questa impostazione nell'ambito utente corrente. Il profilo viene installato e associato al sistema del dispositivo a livello di sistema, se non è già il caso.

No

Utente corrente

Il profilo è di tipo ICC o CDMP

Il profilo viene usato per impostazione predefinita per il tipo specifico con il dispositivo nel caso dell'utente corrente, indipendentemente dall'impostazione predefinita a livello di sistema. Il profilo viene installato e associato al dispositivo per l'utente corrente, se non è già il caso.

Sì, se il profilo è già installato

${ROWSPAN2}$Set profilo per un tipo (ICC, DMP, CAMP, GMMP) e una combinazione di sottotipi come valore predefinito globale${REMOVE}$

A livello di sistema

Solo i profili ICC e CDMP possono essere associati ai dispositivi.

Il profilo viene usato per impostazione predefinita per il tipo specifico. Gli utenti possono eseguire l'override di questa impostazione nell'ambito utente corrente. Il profilo è installato, se non è già il caso.

No

Utente corrente

Solo i profili ICC e CDMP possono essere associati ai dispositivi.

Il profilo viene usato per impostazione predefinita per il tipo specifico per l'utente corrente. Il profilo è installato, se non è già il caso.

Sì, se il profilo è già installato.

${ROWSPAN2}$Erase l'override dell'utente corrente per una determinata impostazione predefinita del profilo, in modo che il valore predefinito del sistema venga sempre usato (come fallback) anche per l'ambito utente corrente.${REMOVE}$

A livello di sistema

Non applicabile

Utente corrente

Anche per le query utente correnti sulle impostazioni predefinite del profilo, vengono restituite impostazioni a livello di sistema per l'uso.

${ROWSPAN2}$Enumerate profili installati che soddisfano criteri specifici (ad esempio la classe del dispositivo, la classe del profilo e così via) ${REMOVE}$

A livello di sistema

Solo i profili ICC e CDMP possono essere associati e enumerati per i dispositivi.

I profili installati e conformi ai criteri specificati nell'ambito a livello di sistema vengono enumerati.

Utente corrente

Solo i profili ICC e CDMP possono essere associati ai dispositivi e quindi enumerati per i dispositivi.

I profili installati e conformi ai criteri specificati nell'ambito a livello di sistema vengono enumerati.

${ROWSPAN2}$Enumerate profili associati a un determinato dispositivo che soddisfa criteri specifici, ad esempio la classe del dispositivo e la classe del profilo${REMOVE}$

A livello di sistema

Solo i profili ICC e CDMP possono essere associati e enumerati per i dispositivi.

I profili associati al dispositivo nell'ambito a livello di sistema e soddisfano i criteri specificati nell'ambito a livello di sistema vengono enumerati.

Utente corrente

Solo i profili ICC e CDMP possono essere associati e enumerati per i dispositivi.

I profili disponibili come associati al dispositivo nell'ambito utente corrente, che includono le associazioni a livello di sistema e soddisfano i criteri specificati nell'ambito dell'utente corrente vengono enumerati.

 

I tipi di profilo colore validi vengono forniti dall'enumerazione COLORPROFILETYPE.

I sottotipi di profilo colore validi vengono forniti dall'enumerazione COLORPROFILESUBTYPE.

Le combinazioni di tipo profilo/sottotipo valide sono illustrate nella tabella seguente.

COLORPROFILETYPE

COLORPROFILESUBTYPE valido

Note

Impostazione predefinita dispositivo

Impostazione predefinita globale

Uso previsto

Uso previsto

CPT_ICC

CPST_NONE

Ottenere/impostare il profilo CP predefinito associato a un dispositivo

CPST_RGBWorkingSpace o CPST_CustomWorkingSpace

Ottenere/impostare il profilo CPI come profilo RGB globale o di spazio di lavoro personalizzato. Vedere la nota.

Il CPT_ICC COLORPROFILETYPE e CPT_DMP si escludono a vicenda. Il profilo colore predefinito impostato per uno spazio di lavoro specifico (RGB o Custom) può essere un profilo CPI o un profilo DMP, ma non entrambi.

CPT_DMP

CPST_NONE

Ottenere/impostare il profilo DMP predefinito associato a un dispositivo

CPST_RGBWorkingSpace o CPST_CustomWorkingSpace

Ottenere/impostare il profilo DMP come profilo RGB globale o di spazio di lavoro personalizzato. Vedere la nota.

Il CPT_ICC COLORPROFILETYPE e CPT_DMP si escludono a vicenda. Il profilo colore predefinito impostato per uno spazio di lavoro specifico (RGB o Custom) può essere un profilo CPI o un profilo DMP, ma non entrambi.

 

Nota

Quando WcsSetDefaultColorProfile viene chiamato per impostare un profilo DMP come profilo predefinito per lo spazio di lavoro RGB o uno spazio di lavoro personalizzato, è valido solo un profilo DMP di tipo RGBVirtualDevice, LCD o CRT.

 

Quando WcsSetDefaultColorProfile viene chiamato per impostare un profilo CP come profilo predefinito per lo spazio di lavoro RGB o uno spazio di lavoro personalizzato, è valido solo un profilo CP la cui classe è "spac" o "disp" e il cui spazio colore è "RGB".

 

L'architettura è progettata in base ai requisiti delle operazioni, come indicato nelle enumerazioni e nelle tabelle precedenti.

Livello API pubblica di gestione dei profili

Poiché l'ambito di gestione dei profili non è supportato dalle API ICM2 legacy, è necessario un nuovo set di API di gestione dei profili WCS che definisce l'ambito di gestione del profilo come utente a livello di sistema o utente corrente. ? Le API ICM2 legacy continuano a essere supportate per la compatibilità con le versioni precedenti e funzionano nell'ambito di gestione dei profili implicito per la chiamata. o API ICM2 che funzionano sull'ambito utente corrente? Questo vale per le operazioni supportate sia per l'ambito a livello di sistema che per l'ambito utente corrente nella gestione dei profili WCS. Le API ICM2 legacy chiamano le nuove API WCS con ambito di gestione del profilo come utente corrente. Ciò ha senso dal punto di vista dell'utente perché consente le impostazioni per utente dalle applicazioni legacy e anche l'esecuzione della maggior parte delle operazioni nel contesto LUA. o API ICM2 che funzionano nell'ambito a livello di sistema? Si tratta di operazioni (profili di installazione e profili di disinstallazione) che supportano solo l'ambito a livello di sistema. Non vengono create nuove API di gestione del profilo WCS e le API esistenti possono essere modificate.

Le implementazioni sottostanti delle operazioni di gestione del profilo funzionano sulle entità di dati di configurazione seguenti per creare il contesto per gli algoritmi di elaborazione dei colori per fornire funzionalità di gestione dei colori. Sono impostazioni specifiche del dispositivo o globali (indipendenti dal dispositivo). o Dati di configurazione specifici del dispositivo: ? Elenco di profili associati a un dispositivo specifico. ? Profilo predefinito per diversi tipi di profilo associati a un dispositivo. ? Modalità di corrispondenza dei profili usati per l'enumerazione. o Dati di configurazione globale: ? Elenco dei profili installati nel sistema. ? Profilo predefinito globale per tipi di profilo diversi. ? Le implementazioni sottostanti dell'archiviazione dei dati di configurazione accettano l'ambito di archiviazione per i dati di configurazione (dispositivi indipendenti o specifici del dispositivo), che possono essere a livello di sistema o utente corrente. Questo è diverso dall'ambito di gestione del profilo. Un'operazione con ambito di gestione del profilo utente corrente può causare una lettura da un ambito di archiviazione a livello di sistema se l'impostazione utente corrente per tale operazione non è presente. ? Il livello API ICM2/WCS chiama in questo livello di archiviazione per ottenere e impostare i dati con l'ambito di archiviazione appropriato. Il livello di archiviazione è trasparente per l'ambito di gestione del profilo. Logica per la combinazione dei dati dagli ambiti di archiviazione correnti dell'utente e del sistema per creare o aggiornare una configurazione in base all'ambito di gestione del profilo specificato dal chiamante DELL'API. Questa logica è presente nel livello API ICM2/WCS.

Livello di archiviazione specifico del dispositivo

Lo spazio di archiviazione per diverse classi di dispositivi, ad esempio stampa, acquisizione o visualizzazione, può essere diverso l'uno dall'altro. Ad esempio, i dati di configurazione per un dispositivo di stampa devono essere archiviati usando API di stampa standard, ad esempio SetPrinterDataEx e GetPrinterDataEx, per consentire la copia dei profili e le impostazioni da trasferire a un computer client durante la connessione point-and-print. ? Questo livello esporta la funzionalità per aprire l'archivio, ottenere dati, impostare i dati e chiudere l'archivio usando interfacce predefinite comuni, in modo che il livello di archiviazione della configurazione della configurazione del profilo possa chiamarli mentre sono trasparenti per il modo in cui i dati vengono archiviati per tale dispositivo.

Nella figura seguente viene illustrata questa architettura.

Livello API pubblica di gestione dei profili

${ROWSPAN2}$Legacy API ICM2 per operazioni che supportano solo l'ambito di gestione dei profili a livello di sistema in Vista (installazione, disinstallazione e recupero della directory dei colori). Chiamano il livello di archiviazione di configurazione con ambito di archiviazione appropriato.${REMOVE}$

API ICM2 legacy per le operazioni che supportano sia l'ambito di gestione dei profili utente a livello di sistema che quello corrente in Vista (tutte le operazioni diverse da installazione, disinstallazione e recupero della directory colore). Funzionano in modo implicito nell'ambito utente corrente e chiamano una nuova API WCS con ambito di gestione del profilo come utente corrente.

Nuova API WCS con supporto per l'ambito di gestione dei profili utente a livello di sistema e corrente. Chiamano il livello di archiviazione della configurazione con l'ambito di archiviazione appropriato.

 

Livello di archiviazione configurazione della gestione dei profili

Routine di configurazione globale indipendenti dal dispositivo

Routine di configurazione specifiche del dispositivo

${ROWSPAN3}$Profile l'installazione e la gestione delle impostazioni predefinite indipendenti dal dispositivo, supportate nell'ambito di archiviazione utente corrente e a livello di sistema.${REMOVE}$

Associazione del dispositivo e gestione delle impostazioni predefinite specifiche del dispositivo, supportate nell'ambito di archiviazione utente corrente e a livello di sistema.

livello di archiviazione Device-Specific

Stampare una risorsa di archiviazione specifica

Visualizzare una risorsa di archiviazione specifica

Acquisire una risorsa di archiviazione specifica

 

Le API ICM2 legacy per le operazioni che supportano solo l'ambito di gestione dei profili a livello di sistema in Vista non presentano modifiche al comportamento. Le operazioni di installazione e disinstallazione rientrano in questa categoria.

Le API ICM2 legacy per le operazioni che supportano sia l'ambito di gestione dei profili utente a livello di sistema che quello corrente hanno modificato il comportamento per eseguire query e configurare le impostazioni dell'utente corrente. Tutte le operazioni diverse dall'installazione e dalla disinstallazione rientrano in questa categoria.