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 colore logico in un profilo di dispositivo . |
DisassociateColorProfileFromDeviceW | Annulla l'associazione di un profilo 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 a colori dirette. |
GetStandardColorSpaceProfileW | Recupera il profilo 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 dinamico (DLL CMM) del modulo di gestione colori specificata. 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 sulle schede di visualizzazione a colori diretto. |
SetStandardColorSpaceProfileW | Registra un profilo specificato per uno spazio colore standard specificato. È possibile eseguire query sul profilo usando GetStandardColorSpaceProfileW. |
UninstallColorProfileW | Rimuove un profilo colore specificato da un computer specificato. I file associati vengono facoltativamente eliminati dal sistema. |
Annullare la registrazioneCMMW | Annulla l'associazione di un valore ID specificato da una determinata libreria di collegamento dinamico del modulo 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'associazione di un profilo di colore WCS specificato con un dispositivo specificato in un computer specificato. |
WcsEnumColorProfiles | Enumera tutti i profili colore che soddisfano i criteri di enumerazione nell'ambito di gestione del profilo specificato. |
WcsEnumColorProfilesSize | Restituisce le dimensioni, in byte, del buffer richiesto dal WcsEnumColorProfiles funzione per enumerare i profili colore. |
WcsGetDefaultColorProfile | Recupera il profilo di colore predefinito per un dispositivo o l'impostazione predefinita indipendente dal dispositivo se il dispositivo non è specificato. |
WcsGetDefaultColorProfileSize | Restituisce le dimensioni, in byte, del nome del profilo colore predefinito per un dispositivo, incluso il carattere di terminazione null 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 per un profilo di colore specificato. |
WcsSetDefaultColorProfile | Imposta il nome predefinito del profilo colore 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 associazioni 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 di 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 del profilo si basa sulle API ICM2 esistenti che vengono aumentate per fornire funzionalità aggiuntive per la revisione del codice dell'applicazione.
I profili contengono informazioni usate dagli algoritmi di elaborazione dei colori per convertire il colore tra spazi di colore diversi. La gestione dei profili consente di eseguire query e specificare i profili usati in diverse fasi 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 offre il set di funzionalità seguente:
- Installazione dei profili colore da usare nel sistema.
- Associazione di uno o più profili di colore installati a qualsiasi dispositivo specifico.
- Scelta di un profilo colore predefinito di un particolare tipo tra i profili disponibili per l'uso in una particolare fase di elaborazione dei colori. Potrebbe trattarsi di un dispositivo tra i profili associati o tra i profili installati nel sistema e non specifici del dispositivo.
- 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 DMP, ".camp" per le camp e ".gmmp" per i GMMP.
gestione dei profili per utente e abilitazione dell'esecuzione nel contesto LUA
L'obiettivo della progettazione descritta nel documento corrente è il seguente:
- L'implementazione legacy di ICM2 non fornisce supporto per la gestione dei profili utente. Gli utenti diversi non possono avere impostazioni del profilo personalizzate. In Vista, l'infrastruttura di gestione dei profili WCS consente agli utenti di configurare le impostazioni dei singoli profili per la maggior parte delle funzionalità.
- 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 dei casi le 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 del profilo WCS tutte le impostazioni del profilo utente sono configurabili nel contesto LUA. Le applicazioni di gestione dei profili possono essere eseguite come impostazioni LUA, aumentandone l'ambito di utilizzo e assicurando che la sicurezza del sistema non venga compromessa.
La gestione dei profili in Vista offre i miglioramenti seguenti rispetto all'infrastruttura ICM2 legacy:
- Abilita l'associazione del profilo con i dispositivi, le impostazioni predefinite del profilo e l'enumerazione dei profili in ambito per utente e a livello di sistema.
- 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 per 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 dei profili colori non deve eseguire alcuna operazione speciale in questo senso perché l'installazione avviene nel contesto dello spooler.
- La modifica delle impostazioni del profilo nell'ambito per utente può essere eseguita nel contesto LUA; 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 per le impostazioni per utente e 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 eseguito 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 il Pannello di controllo gestione colori, possono consentire all'utente di elevare l'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}profilo di $Install${REMOVE}$
A livello di sistema
Profilo copiato, installato nel sistema e disponibile per l'uso. Il profilo è enumerabile nell'ambito di sistema e dell'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}profilo di $Uninstall${REMOVE}$
A livello di sistema
Il profilo viene 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 dispositivo${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 a livello di sistema ed è di tipo ICC o CDMP.
Il profilo è disponibile per l'uso con il dispositivo da parte dell'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.
Sì
${ROWSPAN2}$Disassociate profilo da dispositivo${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 ICC 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).
Sì
${ROWSPAN2}$Set profilo per un tipo (DMP o ICC) come predefinito 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 all'intero sistema del dispositivo, se non è già presente.
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 dal valore predefinito a livello di sistema. Il profilo viene installato e associato al dispositivo per l'utente corrente, se non è già presente.
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à così.
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à così.
Sì, se il profilo è già installato.
${ROWSPAN2}$Erase l'override dell'utente corrente per un'impostazione di profilo predefinita specifica, in modo che l'impostazione predefinita del sistema venga sempre usata (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.
Sì
${ROWSPAN2}$Enumerate profili installati che soddisfano criteri specifici (ad esempio classe del dispositivo, classe 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.
Sì
Utente corrente
Solo i profili ICC e CDMP possono essere associati ai dispositivi e quindi enumerati per i dispositivi.
Vengono enumerati i profili installati e soddisfano i criteri specificati nell'ambito a livello di sistema.
Sì
${ROWSPAN2}$Enumerate profili associati a un particolare 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.
Sì
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 utente corrente vengono enumerati.
Sì
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 tipi di profilo/sottotipo valide sono illustrate nella tabella seguente.
COLORPROFILETYPE
COLORPROFILESUBTYPE valido
Note
Impostazione predefinita del dispositivo
Impostazione predefinita globale
Uso previsto
Uso previsto
CPT_ICC
CPST_NONE
Ottieni/Imposta profilo ICC predefinito associato a un dispositivo
CPST_RGBWorkingSpace o CPST_CustomWorkingSpace
Ottiene/Imposta profilo ICC come profilo RGB globale o di spazio di lavoro personalizzato. Vedere La nota.
I CPT_ICC COLORPROFILETYPE e i CPT_DMP si escludono a vicenda. Il profilo colore predefinito impostato per un determinato spazio di lavoro (RGB o Personalizzato) può essere un profilo ICC 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.
I CPT_ICC COLORPROFILETYPE e i CPT_DMP si escludono a vicenda. Il profilo colore predefinito impostato per un determinato spazio di lavoro (RGB o Personalizzato) può essere un profilo ICC 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 ICC come profilo predefinito per lo spazio di lavoro RGB o uno spazio di lavoro personalizzato, è valido solo un profilo ICC 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 nell'ambito utente corrente? Questo vale per le operazioni supportate sia per l'ambito di sistema che per l'ambito utente corrente nella gestione dei profili WCS. Le API ICM2 legacy chiamano sulle 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 particolare dispositivo. ? Profilo predefinito per diversi tipi di profilo associati a un dispositivo. ? Modalità di corrispondenza dei profili utilizzati 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 (indipendente dal dispositivo o specifico 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 ambito di archiviazione appropriato. Il livello di archiviazione è trasparente per l'ambito di gestione del profilo. Logica per combinare i 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 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 il copiamento dei profili e le impostazioni da trasferire a un computer client durante la connessione punto e stampa. ? Questo livello esporta 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 di gestione del profilo possa chiamarli mentre è trasparente per il modo in cui i dati vengono archiviati per tale dispositivo.
Il diagramma seguente illustra questa architettura.
Livello API pubblica di Gestione profili
${ROWSPAN2}$Legacy API ICM2 per le operazioni che supportano solo l'ambito di gestione dei profili a livello di sistema in Vista (installazione, disinstallazione e recupero della directory colori). Chiamano il livello di archiviazione di configurazione con ambito di archiviazione appropriato.${REMOVE}$
API ICM2 legacy per 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 dei colori). 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 dell'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 a livello di sistema e utente corrente.${REMOVE}$
Associazione dei dispositivi 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 uno spazio di archiviazione specifico
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 nel 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 l'ambito del profilo utente corrente sono cambiate in modo da eseguire query e configurare le impostazioni correnti dell'utente. Tutte le operazioni diverse dall'installazione e dalla disinstallazione rientrano in questa categoria.