Udostępnij przez


Funkcje zarządzania profilami

Funkcje zarządzania profilami

Następujące funkcje interfejsu API są przydatne w zarządzaniu profilami.

Funkcja Opis
AssociateColorProfileWithDeviceW Kojarzy określony profil kolorów z określonym urządzeniem.
[CreateProfileFromLogColorSpaceW]((/windows/win32/api/icm/nf-icm-createprofilefromlogcolorspacew) Konwertuje przestrzeń kolorów logiczną na profil urządzenia .
DisassociateColorProfileFromDeviceW Usuwa skojarzenie określonego profilu koloru z określonym urządzeniem na określonym komputerze.
EnumColorProfilesW Wylicza wszystkie profile spełniające podane kryteria wyliczenia.
GetColorDirectoryW Pobiera ścieżkę katalogu Windows COLOR na określonej maszynie.
GetDeviceGammaRamp Pobiera rampę gamma z bezpośrednich tablic wyświetlaczy kolorów.
GetStandardColorSpaceProfileW Pobiera profil kolorów zarejestrowany dla określonego standardowego przestrzeni kolorów.
InstallColorProfileW Instaluje dany profil do użycia na określonej maszynie. Profil jest również kopiowany do katalogu COLOR.
RegisterCMMW Kojarzy określoną wartość identyfikacji z określoną biblioteką linków dynamicznych modułu zarządzania kolorami (CMM DLL). Gdy ten identyfikator pojawi się w profilu kolorów, system Windows może zlokalizować odpowiedni cmm, aby utworzyć przekształcenie.
SetDeviceGammaRamp Ustawia rampę gamma na bezpośrednich tablicach wyświetlania kolorów.
SetStandardColorSpaceProfileW Rejestruje określony profil dla danego standardowego przestrzeni kolorów. Do profilu można wykonywać zapytania przy użyciu GetStandardColorSpaceProfileW.
UninstallColorProfileW Usuwa określony profil kolorów z określonego komputera. Skojarzone pliki są opcjonalnie usuwane z systemu.
wyrejestrowywanie CMMW Odłącza określoną wartość identyfikatora od danej biblioteki dynamicznego linku do modułu zarządzania kolorami (CMM DLL).
WcsAssociateColorProfileWithDevice Kojarzy określony profil kolorów WCS z określonym urządzeniem.
WcsCreateIccProfile Konwertuje profil WCS na profil ICC.
WcsDisassociateColorProfileFromDevice Usuwa skojarzenie określonego profilu koloru WCS z określonym urządzeniem na określonym komputerze.
WcsEnumColorProfiles Wylicza wszystkie profile kolorów spełniające kryteria wyliczania w określonym zakresie zarządzania profilami.
WcsEnumColorProfilesSize Zwraca rozmiar w bajtach buforu wymaganego przez funkcję WcsEnumColorProfiles w celu wyliczenia profilów kolorów.
WcsGetDefaultColorProfile Pobiera domyślny profil kolorów urządzenia lub wartość domyślną niezależną od urządzenia, jeśli urządzenie nie zostało określone.
WcsGetDefaultColorProfileSize Zwraca rozmiar w bajtach domyślnej nazwy profilu koloru dla urządzenia, w tym null terminatora.
WcsGetDefaultRenderingIntent Pobiera domyślną intencję renderowania w określonym zakresie zarządzania profilami.
WcsGetUsePerUserProfiles Określa, czy użytkownik zdecydował się używać listy skojarzeń profilu dla określonego urządzenia.
WcsOpenColorProfileW Tworzy uchwyt do określonego profilu koloru.
WcsSetDefaultColorProfile Ustawia domyślną nazwę profilu koloru określonego typu profilu w określonym zakresie zarządzania profilami.
WcsSetDefaultRenderingIntent Ustawia domyślną intencję renderowania w określonym zakresie zarządzania profilami.
WcsSetUsePerUserProfiles Umożliwia użytkownikowi określenie, czy dla określonego urządzenia ma być używana lista skojarzeń profilu użytkownika.

 

Funkcje użycia profilu

Interfejsy API użycia profilu to te interfejsy API w usłudze ICM2, które przyjmują profile ICC lub WCS XML, dojścia profilów lub intencje renderowania jako parametry oraz zestaw nowych interfejsów API dla obsługi profilu usługi WCS dla kodu zarządzania kolorami aplikacji.

 

Profile i funkcje zarządzania profilami

Przepływ pracy zarządzania profilami jest oparty na istniejących interfejsach API ICM2, które zostały rozszerzone, aby zapewnić dodatkowe funkcje umożliwiające zmianę kodu aplikacji.

Profile zawierają informacje używane przez algorytmy przetwarzania kolorów do tłumaczenia koloru między różnymi przestrzeniami kolorów. Zarządzanie profilami umożliwia wykonywanie zapytań i określanie profilów używanych na różnych etapach przez model przetwarzania kolorów w celu zarządzania danymi wyjściowymi kolorów różnych urządzeń peryferyjnych o różnych cechach kolorów.

Zarządzanie profilami zapewnia następujący zestaw funkcji:

 

  1. Instalowanie profilów kolorów do użycia w systemie.

 

  1. Kojarzenie co najmniej jednego zainstalowanego profilu kolorów z dowolnym konkretnym urządzeniem.

 

  1. Wybieranie domyślnego profilu koloru określonego typu między profilami dostępnymi do użycia na określonym etapie przetwarzania kolorów. Może to dotyczyć urządzenia między skojarzonymi z nim profilami lub profilami zainstalowanymi w systemie, a nie konkretnym urządzeniem.

 

  1. Wyliczanie profilów kolorów spełniających określone kryteria między profilami zainstalowanymi w systemie.

Rozszerzenia nazw plików profilów WCS to ".cdmp" dla dmp, ".camp" dla CAMPs i ".gmmp" dla GMMPs.

 

zarządzanie profilami użytkowników i włączanie wykonywania w kontekście LUA

Celem projektu opisanego w bieżącym dokumencie jest następujący:

 

  1. Starsza implementacja ICM2 nie zapewnia obsługi zarządzania profilami poszczególnych użytkowników. Różni użytkownicy nie mogą mieć własnych ustawień profilu. W systemie Vista infrastruktura zarządzania profilami WCS umożliwia użytkownikom konfigurowanie poszczególnych ustawień profilu dla większości funkcji.

 

  1. Wszystkie starsze interfejsy API zarządzania profilami ICM2 modyfikują ustawienia dla całego systemu i wymagają uprawnień administracyjnych. W systemie Windows Vista wszyscy użytkownicy są uruchamiani w ustawieniach konta użytkownika o najniższych uprawnieniach (LUA) przez większość czasu, a administratorzy mogą podnieść poziom uprawnień selektywnie, aby uruchamiać aplikacje modyfikujące ustawienia całego systemu. W przypadku zarządzania profilami WCS wszystkie ustawienia profilu użytkownika można konfigurować w kontekście LUA. Aplikacje do zarządzania profilami mogą działać jako ustawienia LUA, zwiększając ich zakres użycia i zapewniając, że bezpieczeństwo systemu nie zostanie naruszone.

Zarządzanie profilami w systemie Vista zapewnia następujące ulepszenia w przypadku starszej infrastruktury ICM2:

 

  1. Umożliwia skojarzenie profilu z urządzeniami, domyślnymi ustawieniami profilu i wyliczaniem profilów zarówno w zakresie poszczególnych użytkowników, jak i całego systemu.

 

  1. Instalowanie profilu pozostaje w całym systemie i wymaga uprawnień administratora. Jest to zgodne z instalacją profilu podczas instalacji urządzenia, ponieważ instalacja urządzenia jest szeroka i wymaga uprawnień administracyjnych.

 

To, czy urządzenia można zainstalować z kontekstu LUA, jest szczególnie obsługiwane dla tej klasy urządzeń. Na przykład w systemie Vista można przeprowadzić instalację drukarki z kontekstu LUA, jeśli użytkownik otrzymał uprawnienia do kopiowania plików do magazynu sterowników przez administratora domeny przy użyciu zasad magazynu sterowników. Infrastruktura zarządzania profilami kolorów nie musi wykonywać żadnych specjalnych czynności w tym zakresie, ponieważ instalacja odbywa się w kontekście buforu.

 

  1. Modyfikowanie ustawień profilu w zakresie poszczególnych użytkowników można wykonać w kontekście LUA; modyfikacje całego systemu wymagały uprawnień administracyjnych. Operacje zarządzania profilami, które wymagają odczytywania informacji o konfiguracji, można wykonać w kontekście LUA zarówno dla poszczególnych użytkowników, jak i ustawień dotyczących całego systemu.

Zakres zarządzania profilami wskazuje zakres wykonanych operacji; albo na użytkownika lub w całym systemie.

Dla każdej operacji wskazuje, czy można to zrobić z kontekstu LUA. Jeśli nie można wykonać operacji w kontekście LUA, odpowiedni interfejs API zarządzania profilami zwraca błąd z odmowam dostępu. Aplikacje korzystające z interfejsu API, takiego jak Panel sterowania zarządzanie kolorami, mogą umożliwić użytkownikowi podniesienie poziomu do kontekstu administracyjnego (przy użyciu systemu operacyjnego lub interfejsu użytkownika zgody), a następnie wywołać interfejs API z kontekstu z podwyższonym poziomem uprawnień, aby operacja powiodła się.

Operacja

Zakres zarządzania profilami

Warunek wstępny

Warunek po

Plik wykonywalny w kontekście LUA

${ROWSPAN2}profil $Install${REMOVE}$

Szeroki system

Profil skopiowany, zainstalowany w systemie i dostępny do użycia. Profil jest wyliczany w zakresie całego systemu i bieżącego użytkownika dla wszystkich użytkowników.

Podczas instalacji sterownika urządzenia podlegają zasadom instalacji sterowników. Nie, w przeciwnym razie.

Bieżący użytkownik

Nieobsługiwane

${ROWSPAN2}profil $Uninstall${REMOVE}$

Szeroki system

Profil jest zainstalowany w systemie

Profil został odinstalowany z systemu i opcjonalnie usunięty z magazynu profilów. Profil nie jest już dostępny do użycia i nie jest wyliczany w żadnym zakresie.

Nie

Bieżący użytkownik

Nieobsługiwane

${ROWSPAN2}$Associate profil z urządzeniem${REMOVE}$

Szeroki system

Profil jest zainstalowany i ma typ ICC lub CDMP

Profil jest dostępny do użycia z urządzeniem przez wszystkich użytkowników. Jest on wyliczany w zakresie całego systemu, a także w zakresie bieżącego użytkownika dla wszystkich użytkowników skojarzonych z urządzeniem.

Nie

Bieżący użytkownik

Profil jest zainstalowany. Nie ma znaczenia, czy profil jest już skojarzony z urządzeniem w zakresie całego systemu i jest typu ICC lub CDMP.

Profil jest dostępny do użycia z urządzeniem przez bieżącego użytkownika. Jest on wyliczany tylko w zakresie bieżącego użytkownika (chyba że istnieje również skojarzenie całego systemu) skojarzone z urządzeniem.

Tak

${ROWSPAN2}$Disassociate profilu z urządzenia${REMOVE}$

Szeroki system

Profil jest skojarzony z urządzeniem w zakresie całego systemu i jest typu ICC lub CDMP

Profil nie jest już dostępny do użycia (z wyjątkiem użytkowników, którzy mają to skojarzenie w zakresie bieżącego użytkownika). Nie można go wyliczać w zakresie obejmującym cały system. Może to być jednak wyliczane w zakresie bieżącego użytkownika dla użytkownika, który ma to skojarzenie w swoim zakresie.

Nie

Bieżący użytkownik

Profil jest skojarzony z urządzeniem w zakresie bieżącego użytkownika (niezależnie od tego, czy jest skojarzony w zakresie całego systemu) i jest typu ICC lub CDMP.

Profil nie jest już dostępny do użycia ani wyliczany jako skojarzony z urządzeniem przez bieżącego użytkownika (chyba że jest on również skojarzony z urządzeniem w całym systemie).

Tak

${ROWSPAN2}profil $Set dla typu (DMP lub ICC) jako domyślny dla urządzenia${REMOVE}$

Szeroki system

Profil jest typu ICC lub CDMP

Profil jest używany domyślnie dla określonego typu urządzenia dla wszystkich użytkowników z wyjątkiem tych, którzy zastąpili to ustawienie w zakresie bieżącego użytkownika. (Profil jest zainstalowany i skojarzony z całym systemem urządzeń, jeśli tak nie jest).

Nie

Bieżący użytkownik

Profil jest typu ICC lub CDMP

Profil jest używany domyślnie dla określonego typu z urządzeniem w przypadku bieżącego użytkownika, niezależnie od domyślnego ustawienia dla całego systemu. (Profil jest zainstalowany i skojarzony z urządzeniem dla bieżącego użytkownika, jeśli tak nie jest).

Tak, jeśli profil jest już zainstalowany

${ROWSPAN2}profil $Set dla typu (ICC, DMP, CAMP, GMMP) i kombinacji podtypu jako globalnej domyślnej${REMOVE}$

Szeroki system

Z urządzeniami mogą być skojarzone tylko profile ICC i CDMP.

Profil jest używany domyślnie dla określonego typu. Użytkownicy mogą zastąpić to ustawienie w zakresie bieżącego użytkownika. (Profil jest zainstalowany, jeśli nie jest to jeszcze przypadek).

Nie

Bieżący użytkownik

Z urządzeniami mogą być skojarzone tylko profile ICC i CDMP.

Profil jest używany domyślnie dla określonego typu dla bieżącego użytkownika. (Profil jest zainstalowany, jeśli nie jest to jeszcze przypadek).

Tak, jeśli profil jest już zainstalowany.

${ROWSPAN2}$Erase przesłonięcie bieżącego użytkownika dla określonego domyślnego ustawienia profilu, tak aby ustawienie domyślne systemu zawsze było używane (jako rezerwowe) nawet dla zakresu bieżącego użytkownika.${REMOVE}$

Szeroki system

Nie dotyczy

Bieżący użytkownik

Nawet w przypadku zapytań bieżącego użytkownika w domyślnych ustawieniach profilu do użycia są zwracane ustawienia całego systemu.

Tak

${ROWSPAN2}$Enumerate zainstalowane profile spełniające określone kryteria (takie jak klasa urządzeń, klasa profilu itp.)${REMOVE}$

Szeroki system

Tylko profile ICC i CDMP można skojarzyć z urządzeniami i wyliczać je.

Profile, które są zainstalowane i spełniają określone kryteria w zakresie całego systemu, są wyliczane.

Tak

Bieżący użytkownik

Tylko profile ICC i CDMP mogą być skojarzone z urządzeniami, a tym samym wyliczane dla urządzeń.

Profile, które są zainstalowane i spełniają określone kryteria w zakresie całego systemu, są wyliczane.

Tak

${ROWSPAN2}$Enumerate profilów skojarzonych z określonym urządzeniem spełniającym określone kryteria, takie jak klasa urządzeń i klasa profilu${REMOVE}$

Szeroki system

Tylko profile ICC i CDMP można skojarzyć z urządzeniami i wyliczać je.

Wyliczone są profile skojarzone z urządzeniem w zakresie całego systemu i spełniają określone kryteria w zakresie całego systemu.

Tak

Bieżący użytkownik

Tylko profile ICC i CDMP można skojarzyć z urządzeniami i wyliczać je.

Profile, które są dostępne jako skojarzone z urządzeniem w zakresie bieżącego użytkownika, które obejmują skojarzenia całego systemu i spełniają określone kryteria w zakresie bieżącego użytkownika, są wyliczane.

Tak

 

Prawidłowe typy profilów kolorów są dostarczane przez wyliczenie COLORPROFILETYPE.

Prawidłowe podtypy profilu koloru są udostępniane przez wyliczenie COLORPROFILESUBTYPE.

Prawidłowe kombinacje typów/podtypów profilu przedstawiono w poniższej tabeli.

COLORPROFILETYPE

Prawidłowy PARAMETR COLORPROFILESUBTYPE

Notatki

Ustawienie domyślne urządzenia

Wartość domyślna globalna

Przeznaczenie

Przeznaczenie

CPT_ICC

CPST_NONE

Pobieranie/ustawianie domyślnego profilu ICC skojarzonego z urządzeniem

CPST_RGBWorkingSpace lub CPST_CustomWorkingSpace

Pobierz/ustaw profil ICC jako globalny profil RGB lub niestandardowy profil obszaru roboczego. Zobacz Uwaga.

CPT_ICC COLORPROFILETYPE i CPT_DMP wzajemnie się wykluczają. Domyślny profil koloru ustawiony dla danego obszaru roboczego (RGB lub Niestandardowy) może być profilem ICC lub profilem DMP, ale nie obu.

CPT_DMP

CPST_NONE

Pobieranie/ustawianie domyślnego profilu DMP skojarzonego z urządzeniem

CPST_RGBWorkingSpace lub CPST_CustomWorkingSpace

Pobierz/ustaw profil DMP jako globalny profil RGB lub niestandardowy profil obszaru roboczego. Zobacz Uwaga.

CPT_ICC COLORPROFILETYPE i CPT_DMP wzajemnie się wykluczają. Domyślny profil koloru ustawiony dla danego obszaru roboczego (RGB lub Niestandardowy) może być profilem ICC lub profilem DMP, ale nie obu.

 

Nuta

Gdy WcsSetDefaultColorProfile jest wywoływany w celu ustawienia profilu DMP jako domyślnego profilu dla przestrzeni roboczej RGB lub niestandardowej przestrzeni roboczej, prawidłowy jest tylko profil DMP typu RGBVirtualDevice, LCD lub CRT.

 

Gdy wywołana jest funkcja WcsSetDefaultColorProfile w celu ustawienia profilu ICC jako domyślnego profilu dla obszaru roboczego RGB lub niestandardowego obszaru roboczego, prawidłowy jest tylko profil ICC, którego klasa jest "odstępem" lub "disp" i którego przestrzeń kolorów to "RGB".

 

Architektura została zaprojektowana zgodnie z wymaganiami operacji, jak wspomniano w powyższych wyliczeniach i tabelach.

Warstwa publicznego interfejsu API zarządzania profilami

Ponieważ zakres zarządzania profilami nie jest obsługiwany przez starsze interfejsy API ICM2, wymagany jest nowy zestaw interfejsów API zarządzania profilami WCS, który definiuje zakres zarządzania profilami jako szeroki system lub bieżący użytkownik. ? Starsze interfejsy API ICM2 nadal są obsługiwane w celu zapewnienia zgodności z poprzednimi wersjami i działają w zakresie zarządzania profilami niejawnym dla wywołania. o Interfejsy API ICM2, które działają w zakresie bieżącego użytkownika? Dotyczy to operacji obsługiwanych zarówno w zakresie całego systemu, jak i bieżącego użytkownika w zarządzaniu profilami WCS. Starsze interfejsy API ICM2 wywołuje nowe interfejsy API usługi WCS z zakresem zarządzania profilami jako bieżący użytkownik. Ma to sens z perspektywy użytkownika, ponieważ umożliwia to ustawienia poszczególnych użytkowników ze starszych aplikacji, a także wykonywanie większości operacji w kontekście LUA. o Interfejsy API ICM2, które działają w zakresie całego systemu? Dotyczy to operacji (instalowania profilów i odinstalowywania profilów), które obsługują tylko zakres całego systemu. Nie są tworzone żadne nowe interfejsy API zarządzania profilami usługi WCS, a istniejące interfejsy API można modyfikować.

Podstawowe implementacje operacji zarządzania profilami działają na następujących jednostkach danych konfiguracji, aby utworzyć kontekst algorytmów przetwarzania kolorów w celu zapewnienia funkcji zarządzania kolorami. Są to ustawienia specyficzne dla urządzenia lub globalne (niezależne od urządzenia). o Dane konfiguracji specyficzne dla urządzenia: ? Lista profilów skojarzonych z określonym urządzeniem. ? Domyślny profil dla różnych typów profilów skojarzonych z urządzeniem. ? Tryb dopasowywania profilów używany do wyliczania. o Globalne dane konfiguracji: ? Lista profilów zainstalowanych w systemie. ? Globalny profil domyślny dla różnych typów profilów. ? Podstawowe implementacje magazynu danych konfiguracji zajmują zakres magazynu danych konfiguracji dla danych konfiguracji (niezależnych od urządzenia lub konkretnego urządzenia), które mogą być zarówno dla całego systemu, jak i bieżącego użytkownika. Różni się to od zakresu zarządzania profilami. Operacja z zakresem zarządzania bieżącym profilem użytkownika może spowodować odczyt z zakresu magazynu całego systemu, jeśli bieżące ustawienie dla tej operacji nie jest obecne. ? Warstwy interfejsu API ICM2/WCS są wywoływane w tej warstwie magazynu na potrzeby pobierania i ustawiania danych z odpowiednim zakresem magazynu. Warstwa magazynu jest niewidoczna dla zakresu zarządzania profilami. Logika łączenia danych z zakresów magazynu bieżącego użytkownika i całego systemu w celu utworzenia lub zaktualizowania konfiguracji zgodnie z zakresem zarządzania profilami określonymi przez obiekt wywołujący interfejs API. Ta logika jest obecna w warstwie interfejsu API ICM2/WCS.

Warstwa magazynu specyficzna dla urządzenia

Magazyn dla różnych klas urządzeń, takich jak drukowanie, przechwytywanie lub wyświetlanie, może się różnić od siebie. Na przykład dane konfiguracyjne urządzenia wydruku muszą być przechowywane przy użyciu standardowych interfejsów API drukowania, takich jak SetPrinterDataEx i GetPrinterDataEx, aby umożliwić kopiowanie profilów i przesyłanie ustawień do komputera klienckiego podczas połączenia punkt-and-print. ? Ta warstwa eksportuje funkcje do otwierania magazynu, pobierania danych, ustawiania danych i zamykania magazynu przy użyciu typowych wstępnie zdefiniowanych interfejsów, dzięki czemu warstwa magazynu konfiguracji zarządzania profilami może wywoływać je, gdy jest niewidoczna dla sposobu przechowywania danych dla tego urządzenia.

Na poniższym diagramie przedstawiono tę architekturę.

Warstwa publicznego interfejsu API zarządzania profilami

${ROWSPAN2}$Legacy interfejsy API ICM2 dla operacji obsługujących tylko zakres zarządzania profilami w całym systemie w systemie Vista (instalowanie, odinstalowywanie i pobieranie katalogu kolorów). Wywołuje warstwę magazynu konfiguracji z odpowiednim zakresem magazynu.${REMOVE}$

Starszy interfejs API ICM2 dla operacji, które obsługują zarówno zakres zarządzania profilami dla całego systemu, jak i bieżącego użytkownika w systemie Vista (wszystkie operacje inne niż instalowanie, odinstalowywanie i pobieranie katalogu kolorów). Niejawnie pracują w zakresie bieżącego użytkownika i wywołają nowy interfejs API usługi WCS z zakresem zarządzania profilami jako bieżący użytkownik.

Nowy interfejs API usługi WCS z obsługą zakresu zarządzania profilami użytkownika dla całego systemu i bieżącego użytkownika. Wywołuje warstwę magazynu konfiguracji z odpowiednim zakresem magazynu.

 

Warstwa magazynu konfiguracji zarządzania profilami

Procedury konfiguracji globalnej niezależne od urządzeń

Procedury konfiguracji specyficzne dla urządzenia

${ROWSPAN3}$Profile instalacji i niezależnego od urządzenia domyślnego zarządzania ustawieniami profilu, obsługiwane w zakresie magazynu dla całego systemu i bieżącego użytkownika.${REMOVE}$

Skojarzenie urządzenia i domyślne zarządzanie ustawieniami profilu specyficzne dla urządzenia, obsługiwane w zakresie magazynu dla całego systemu i bieżącego użytkownika.

warstwa magazynu Device-Specific

Drukowanie określonego magazynu

Wyświetlanie określonego magazynu

Przechwytywanie określonego magazynu

 

Starsze interfejsy API ICM2 dla operacji, które obsługują tylko zakres zarządzania profilami w całym systemie w systemie Vista, nie mają żadnych zmian w zachowaniu. Operacje instalowania i odinstalowywania należą do tej kategorii.

Starsze interfejsy API ICM2 dla operacji, które obsługują zarówno zakres zarządzania profilami systemu, jak i bieżącego użytkownika, zmieniły się na wykonywanie zapytań i konfigurowanie ustawień bieżącego użytkownika. Wszystkie operacje inne niż instalowanie i odinstalowywanie należą do tej kategorii.