Funktioner för profilhantering
Funktioner för profilhantering
Följande API-funktioner är användbara i profilhantering.
Funktion | Beskrivning |
---|---|
AssociateColorProfileWithDeviceW | Associerar en angiven färgprofil med en angiven enhet. |
[CreateProfileFromLogColorSpaceW]((/windows/win32/api/icm/nf-icm-createprofilefromlogcolorspacew) | Konverterar ett logiskt färgutrymme till en enhetsprofil. |
DisassociateColorProfileFromDeviceW | Kopplar bort en angiven färgprofil med en angiven enhet på en angiven dator. |
EnumColorProfilesW | Räknar upp alla profiler som uppfyller de angivna uppräkningskriterierna. |
GetColorDirectoryW | Hämtar sökvägen till Windows COLOR-katalogen på en angiven dator. |
GetDeviceGammaRamp | Hämtar gammarampen från direkt färgvisningstavlor. |
GetStandardColorSpaceProfileW | Hämtar den färgprofil som registrerats för den angivna standardfärgrymden . |
InstallColorProfileW | Installerar en viss profil för användning på en angiven dator. Profilen kopieras också till color-katalogen. |
RegisterCMMW | Associerar ett angivet identifieringsvärde med det angivna biblioteket för dynamisk länk (CMM DLL) för färghanteringsmodulen. När det här ID:t visas i en färgprofil kan Windows sedan hitta motsvarande CMM för att skapa en transformering. |
SetDeviceGammaRamp | Ställer in gammarampen på direktfärgsvisningstavlor. |
SetStandardColorSpaceProfileW | Registrerar en angiven profil för en viss standard färgrymd. Profilen kan frågas med hjälp av GetStandardColorSpaceProfileW. |
UninstallColorProfileW | Tar bort en angiven färgprofil från en angiven dator. Associerade filer tas eventuellt bort från systemet. |
AvregistreraCMMW- | Kopplar bort ett angivet ID-värde från ett visst färghanteringsmodulbibliotek med dynamisk länk (CMM DLL). |
WcsAssociateColorProfileWithDevice | Associerar en angiven WCS-färgprofil med en angiven enhet. |
WcsCreateIccProfile | Konverterar en WCS-profil till en ICC-profil. |
WcsDisassociateColorProfileFromDevice | Kopplar bort en angiven WCS-färgprofil med en angiven enhet på en angiven dator. |
WcsEnumColorProfiles | Räknar upp alla färgprofiler som uppfyller uppräkningsvillkoren i det angivna omfånget för profilhantering. |
WcsEnumColorProfilesSize | Returnerar storleken, i byte, på bufferten som krävs av WcsEnumColorProfiles funktion för att räkna upp färgprofiler. |
WcsGetDefaultColorProfile | Hämtar standardfärgprofilen för en enhet eller den enhetsoberoende standardinställningen om enheten inte har angetts. |
WcsGetDefaultColorProfileSize | Returnerar storleken i byte för standardfärgprofilnamnet för en enhet, inklusive NULL- terminator. |
WcsGetDefaultRenderingIntent | Hämtar standardåtergivnings avsikten i det angivna profilhanteringsomfånget. |
WcsGetUsePerUserProfiles | Avgör om användaren har valt att använda en associationslista per användare för den angivna enheten. |
WcsOpenColorProfileW | Skapar ett handtag till en angiven färgprofil. |
WcsSetDefaultColorProfile | Anger standardfärgprofilnamnet för den angivna profiltypen i det angivna omfånget för profilhantering. |
WcsSetDefaultRenderingIntent | Anger standardåtergivnings avsikten i det angivna omfånget för profilhantering. |
WcsSetUsePerUserProfiles | Tillåter att användaren anger om en profilassociation per användare ska användas för den angivna enheten. |
Funktioner för profilförbrukning
API:erna för profilförbrukning är de API:er i ICM2 som använder ICC- eller WCS XML-profiler, profilhandtag eller återgivnings avsikter som parametrar och en uppsättning nya API:er för WCS-profilstöd för programfärghanteringskod.
Profiler och profilhanteringsfunktioner
Arbetsflödet för profilhantering baseras på befintliga ICM2-API:er som utökas för att ge ytterligare funktioner för att ändra programkoden.
Profiler innehåller information som används av färgbearbetningsalgoritmer för att översätta färg mellan olika färgrymder. Profilhantering ger ett sätt att fråga och ange vilka profiler som används i olika steg av färgbearbetningsmodellen för att hantera färgutdata från olika kringutrustning med olika färgegenskaper.
Profilhantering innehåller följande funktioner:
- Installera färgprofiler för användning i systemet.
- Associera en eller flera installerade färgprofiler med en viss enhet.
- Välja en standardfärgprofil av en viss typ bland de profiler som är tillgängliga för användning i ett visst steg i färgbearbetningen. Detta kan vara för en enhet bland de profiler som är associerade med den, eller bland de profiler som är installerade i systemet och inte enhetsspecifika.
- Räkna upp färgprofiler som uppfyller vissa kriterier bland de profiler som är installerade i systemet.
Filnamnstilläggen för WCS-profilen är ".cdmp" för DMPs, ".camp" för CAMPs och ".gmmp" för GMMPs.
profilhantering per användare och aktivering av körning i LUA-kontext
Målet med designen som beskrivs i det aktuella dokumentet är följande:
- Äldre ICM2-implementering ger inte stöd för profilhantering per användare. Olika användare kan inte ha egna profilinställningar. I Vista gör WCS-profilhanteringsinfrastrukturen det möjligt för användare att konfigurera enskilda profilinställningar för de flesta funktioner.
- Alla äldre API:er för ICM2-profilhantering ändrar inställningarna systemomfattande och kräver administratörsbehörighet. I Windows Vista körs alla användare i LUA-inställningar (Minst privilegierat användarkonto) för det mesta, och administratörer kan öka behörigheten selektivt för att köra program som ändrar systemomfattande inställningar. I WCS-profilhantering kan alla profilinställningar per användare konfigureras i LUA-kontext. Profilhanteringsprogram kan köras som LUA-inställningar, vilket ökar deras användningsområde och säkerställer att säkerheten i systemet inte äventyras.
Profilhantering i Vista ger följande förbättringar jämfört med äldre ICM2-infrastruktur:
- Det möjliggör profilassociation med enheter, standardprofilinställningar och uppräkning av profiler i både per användare och systemomfattande omfång.
- Installation av en profil förblir systemomfattande och kräver administratörsbehörighet. Detta överensstämmer med profilinstallationen under enhetsinstallationen eftersom enhetsinstallationen är systemomfattande och kräver administratörsbehörighet.
Om enheter kan installeras från LUA-kontext är särskilt vad som stöds för den enhetsklassen. I Vista är det till exempel möjligt att göra skrivarinstallation från LUA-kontext om användaren har beviljats behörighet att kopiera filer till drivrutinsarkivet av en domänadministratör med hjälp av principer för drivrutinsarkiv. Infrastruktur för hantering av färgprofiler behöver inte göra något speciellt i det här avseendet eftersom installationen sker i spooler-kontext.
- Du kan ändra profilinställningarna i omfånget per användare i LUA-kontext. systemomfattande ändringar krävde administrativa privilegier. Profilhanteringsåtgärder som kräver att du läser konfigurationsinformation kan utföras i LUA-kontext för både inställningar per användare och hela systemet.
Omfånget för profilhantering anger omfånget för de åtgärder som utförts. per användare eller hela systemet.
För varje åtgärd anges det om det kan göras från LUA-kontexten. Om en åtgärd inte kan utföras i LUA-kontext returnerar motsvarande API för profilhantering fel med nekad åtkomst. Program som använder API:et, till exempel Kontrollpanelen för färghantering, kan göra det möjligt för användaren att höja till administrativ kontext (med ots eller användargränssnitt för medgivande) och sedan anropa API:et från den upphöjda kontexten så att åtgärden lyckas.
Operation
Omfång för profilhantering
Förhandsvillkor
Eftervillkor
Körbar i LUA-kontext
${ROWSPAN2}$Install profil${REMOVE}$
Hela systemet
Profilen kopieras, installeras i systemet och är tillgänglig för användning. Profilen kan räknas upp i systemomfattande och aktuellt användaromfång för alla användare.
Under installationen av enhetsdrivrutinen styrs av drivrutinsinstallationsprinciper. Nej, annars.
Aktuell användare
Stöds inte
${ROWSPAN2}$Uninstall profil${REMOVE}$
Hela systemet
Profilen är installerad i systemet
Profilen har avinstallerats från systemet och tagits bort från profilarkivet. Profilen är inte längre tillgänglig för användning och kan inte räknas upp i något omfång.
Nej
Aktuell användare
Stöds inte
${ROWSPAN2}$Associate profil med device${REMOVE}$
Hela systemet
Profilen är installerad och är av typen ICC eller CDMP
Profilen är tillgänglig för användning med enheten av alla användare. Den är uppräkningsbar, i systemomfattande omfattning och även aktuellt användaromfång för alla användare, som är associerad med enheten.
Nej
Aktuell användare
Profilen är installerad. Det spelar ingen roll om profilen redan är associerad med enheten i systemomfattande omfång och är av typen ICC eller CDMP.
Profilen är tillgänglig för användning med enheten av den aktuella användaren. Den kan bara räknas upp i aktuellt användaromfång (såvida det inte också finns en systemomfattande association) som är associerad med enheten.
Ja
${ROWSPAN2}$Disassociate profil från enheten${REMOVE}$
Hela systemet
Profilen är associerad med enheten i systemomfattande omfång och är av typen ICC eller CDMP
Profilen är inte längre tillgänglig för användning (förutom för användare som har den här associationen även i sitt aktuella användaromfång). Det går inte att räkna upp i systemomfattande omfång. Den kan dock räknas upp i aktuellt användaromfång för en användare som har den här associationen i sitt omfång.
Nej
Aktuell användare
Profilen är associerad med enheten i aktuellt användaromfång (oavsett om den är associerad i systemomfattande omfång) och är av typen ICC eller CDMP.
Profilen är inte längre tillgänglig för användning eller kan räknas upp som associerad med enheten av den aktuella användaren (såvida den inte också är associerad i systemomfattande omfång till enheten).
Ja
${ROWSPAN2}$Set profil för en typ (DMP eller ICC) som standard för en enhet${REMOVE}$
Hela systemet
Profilen är av typen ICC eller CDMP
Profilen används som standard för den specifika typen med enheten för alla användare förutom de som har åsidosatt den här inställningen i sitt aktuella användaromfång. (Profilen är installerad och associerad med hela enhetens system, om så inte redan är fallet.)
Nej
Aktuell användare
Profilen är av typen ICC eller CDMP
Profilen används som standard för den specifika typen med enheten för aktuell användare, oavsett systemomfattande standard för detta. (Profilen är installerad och associerad med enheten för den aktuella användaren, om så inte redan är fallet.)
Ja, om profilen redan är installerad
${ROWSPAN2}$Set profil för en typ (ICC, DMP, CAMP, GMMP) och undertypskombination som global standard${REMOVE}$
Hela systemet
Endast ICC- och CDMP-profiler kan associeras med enheter.
Profilen används som standard för den specifika typen. Användare kan åsidosätta den här inställningen i det aktuella användaromfånget. (Profilen är installerad, om så inte redan är fallet.)
Nej
Aktuell användare
Endast ICC- och CDMP-profiler kan associeras med enheter.
Profilen används som standard för den aktuella användarens specifika typ. (Profilen är installerad, om så inte redan är fallet.)
Ja, om profilen redan är installerad.
${ROWSPAN2}$Erase åsidosättningen för aktuell användare för en viss standardprofilinställning, så att systemets standardinställning alltid används (som reserv) även för aktuellt användaromfång.${REMOVE}$
Hela systemet
Ej tillämpligt
Aktuell användare
Även för aktuella användarfrågor i standardprofilinställningar returneras systemomfattande inställningar för användning.
Ja
${ROWSPAN2}$Enumerate installerade profiler som uppfyller vissa kriterier (t.ex. enhetsklass, profilklass osv.)${REMOVE}$
Hela systemet
Endast ICC- och CDMP-profiler kan associeras med och räknas upp för enheter.
Profiler som installeras och uppfyller de angivna kriterierna i systemomfattande omfång räknas upp.
Ja
Aktuell användare
Endast ICC- och CDMP-profiler kan associeras med enheter och därmed räknas upp för enheter.
Profiler som installeras och uppfyller de angivna kriterierna i systemomfattande omfång räknas upp.
Ja
${ROWSPAN2}$Enumerate profiler som är associerade med en viss enhet som uppfyller vissa kriterier, till exempel enhetsklass och profilklass${REMOVE}$
Hela systemet
Endast ICC- och CDMP-profiler kan associeras med och räknas upp för enheter.
Profiler som är associerade med enheten i systemomfattande omfång och uppfyller de angivna kriterierna i systemomfattande omfång räknas upp.
Ja
Aktuell användare
Endast ICC- och CDMP-profiler kan associeras med och räknas upp för enheter.
Profiler som är tillgängliga som associerade med enheten i aktuellt användaromfång, som innehåller systemomfattande associationer och uppfyller de angivna kriterierna i aktuellt användaromfång räknas upp.
Ja
De giltiga färgprofiltyperna tillhandahålls av COLORPROFILETYPE-uppräkningen.
De giltiga färgprofilundertyperna tillhandahålls av COLORPROFILESUBTYPE-uppräkningen.
De giltiga kombinationerna av profiltyp/undertyp visas i följande tabell.
COLORPROFILETYPE
Giltig COLORPROFILESUBTYPE
Anteckningar
Standard för enhet
Global standard
Avsedd användning
Avsedd användning
CPT_ICC
CPST_NONE
Hämta/ange en standard-ICC-profil som är associerad med en enhet
CPST_RGBWorkingSpace eller CPST_CustomWorkingSpace
Hämta/ange ICC-profil som global RGB eller anpassad arbetsutrymmesprofil. Se Obs!
COLORPROFILETYPE-CPT_ICC och CPT_DMP är ömsesidigt uteslutande. Standardfärgprofilen som du anger för ett visst arbetsutrymme (RGB eller Anpassad) kan vara antingen en ICC-profil eller en DMP-profil, men inte båda.
CPT_DMP
CPST_NONE
Hämta/ange standard-DMP-profil som är associerad med en enhet
CPST_RGBWorkingSpace eller CPST_CustomWorkingSpace
Hämta/ange DMP-profil som global RGB eller anpassad arbetsutrymmesprofil. Se Obs!
COLORPROFILETYPE-CPT_ICC och CPT_DMP är ömsesidigt uteslutande. Standardfärgprofilen som du anger för ett visst arbetsutrymme (RGB eller Anpassad) kan vara antingen en ICC-profil eller en DMP-profil, men inte båda.
Not
När WcsSetDefaultColorProfile anropas för att ange en DMP-profil som standardprofil för RGB-arbetsutrymmet eller ett anpassat arbetsutrymme är endast en DMP-profil av typen RGBVirtualDevice, LCD eller CRT giltig.
När WcsSetDefaultColorProfile anropas för att ange en ICC-profil som standardprofil för RGB-arbetsutrymmet eller ett anpassat arbetsutrymme är det bara en ICC-profil vars klass är "avstånd" eller "disp" och vars färgutrymme är "RGB" är giltigt.
Arkitekturen är utformad enligt kraven för åtgärderna enligt beskrivningarna och tabellerna ovan.
Offentligt API-lager för profilhantering
Eftersom profilhanteringsomfånget inte stöds av äldre ICM2-API:er krävs en ny uppsättning API:er för WCS-profilhantering som definierar profilhanteringsomfånget som systemomfattande eller aktuell användare. ? Äldre ICM2-API:er fortsätter att stödjas för bakåtkompatibilitet och fungerar med profilhanteringsomfång som är implicit för anropet. o ICM2-API:er som fungerar med aktuellt användaromfång? Detta gäller åtgärder som stöds för både systemomfattande och aktuella användaromfång i WCS-profilhantering. Äldre ICM2-API:er anropar nya WCS-API:er med profilhanteringsomfång som aktuell användare. Detta är vettigt ur användarperspektiv eftersom detta möjliggör inställningar per användare från äldre program och även utför de flesta åtgärderna i LUA-kontext. o ICM2-API:er som fungerar med systemomfattande omfång? Detta gäller åtgärder (installera profiler och avinstallera profiler) som endast stöder systemomfattande omfång. Inga nya API:er för WCS-profilhantering skapas och befintliga API:er kan ändras.
De underliggande implementeringarna av profilhanteringsåtgärderna fungerar på följande konfigurationsdataentiteter för att skapa kontexten för färgbearbetningsalgoritmer för att tillhandahålla funktioner för färghantering. De är antingen enhetsspecifika eller globala inställningar (enhetsoberoende). o Enhetsspecifika konfigurationsdata: ? Lista över profiler som är associerade med en viss enhet. ? Standardprofil för olika profiltyper som är associerade med en enhet. ? Matchningsläge för profiler som används för uppräkning. o Globala konfigurationsdata: ? Lista över profiler som är installerade i systemet. ? Global standardprofil för olika profiltyper. ? De underliggande implementeringarna av konfigurationsdatalagring tar in lagringsomfånget för konfigurationsdata (antingen enhetsoberoende eller enhetsspecifikt), som kan vara antingen systemomfattande eller aktuella användare. Detta skiljer sig från omfånget för profilhantering. En åtgärd med aktuell användarprofilhanteringsomfång kan orsaka läsning från ett systemomfattande lagringsomfång om den aktuella användarinställningen för åtgärden inte finns. ? ICM2/WCS API-lagret anropar i det här lagringslagret för att hämta och ange data med lämpligt lagringsomfång. Lagringsskiktet är transparent för profilhanteringsomfånget. Logiken för att kombinera data från aktuella och systemomfattande lagringsomfång för att skapa eller uppdatera en konfiguration enligt det profilhanteringsomfång som anges av API-anroparen. Den här logiken finns i ICM2/WCS API-lagret.
Enhetsspecifikt lagringslager
Lagringen för olika klasser av enheter som utskrift, avbildning eller visning kan skilja sig från varandra. Konfigurationsdata för en utskriftsenhet måste till exempel lagras med standardutskrifts-API:er, till exempel SetPrinterDataEx och GetPrinterDataEx, för att profilerna ska kunna kopieras och inställningar som ska överföras till en klientdator under punkt- och utskriftsanslutningen. ? Det här lagret exporterar funktioner för att öppna lagring, hämta data, ange data och stänga lagringen med hjälp av vanliga fördefinierade gränssnitt så att lagringslagret för profilhanteringskonfigurationen kan anropa dem samtidigt som de är transparenta för hur data lagras för den enheten.
Följande diagram illustrerar den här arkitekturen.
Offentligt API-lager för profilhantering
${ROWSPAN2}$Legacy ICM2-API:er för åtgärder som endast stöder systemomfattande profilhanteringsomfång i Vista (installera, avinstallera och hämta färgkatalog). De anropar konfigurationslagringsskiktet med lämpligt lagringsomfång.${REMOVE}$
Äldre ICM2 API för åtgärder som stöder både systemomfattande och aktuella användarprofilhanteringsomfång i Vista (alla åtgärder förutom att installera, avinstallera och hämta färgkatalog). De arbetar implicit med aktuellt användaromfång och anropar till det nya WCS-API:et med profilhanteringsomfång som aktuell användare.
Nytt WCS-API med stöd för hanteringsomfång för systemomfattande och aktuella användarprofiler. De anropar konfigurationslagringsskiktet med lämpligt lagringsomfång.
Lagringslager för profilhanteringskonfiguration
Enhetsoberoende globala konfigurationsrutiner
Enhetsspecifika konfigurationsrutiner
${ROWSPAN3}$Profile installation och enhetsoberoende standardhantering av profilinställningar som stöds i systemomfattande och aktuella användarlagringsomfång.${REMOVE}$
Enhetsassociation och enhetsspecifik standardhantering av profilinställningar, som stöds i systemomfattande och aktuella användarlagringsomfång.
Device-Specific lagringslager
Skriv ut specifik lagring
Visa specifik lagring
Samla in specifik lagring
Äldre ICM2-API:er för åtgärder som endast stöder systemomfattande profilhanteringsomfång i Vista har inga ändringar i beteendet. Installations- och avinstallationsåtgärderna hör till den här kategorin.
Äldre ICM2-API:er för åtgärder som stöder både systemomfattande och aktuella användarprofilhanteringsomfång får sitt beteende ändrat till att fråga och konfigurera aktuella användarinställningar. Alla andra åtgärder än installation och avinstallation finns i den här kategorin.