Fonctions de gestion des profils
Fonctions de gestion des profils
Les fonctions d’API suivantes sont utiles dans la gestion des profils.
Fonction | Description |
---|---|
AssociateColorProfileWithDeviceW | Associe un profil de couleur spécifié à un appareil spécifié. |
[CreateProfileFromLogColorSpaceW]((/windows/win32/api/icm/nf-icm-createprofilefromlogcolorspacew) | Convertit un espace de couleur logique en profil d’appareil . |
DisassociateColorProfileFromDeviceW | Dissocie un profil de couleur spécifié avec un appareil spécifié sur un ordinateur spécifié. |
EnumColorProfilesW | Énumère tous les profils répondant aux critères d’énumération donnés. |
GetColorDirectoryW | Récupère le chemin d’accès du répertoire Windows COLOR sur un ordinateur spécifié. |
GetDeviceGammaRamp | Obtient la rampe gamma à partir de tableaux d’affichage de couleur directe. |
GetStandardColorSpaceProfileW | Récupère le profil de couleur inscrit pour l’espace de couleur standard spécifié. |
InstallColorProfileW | Installe un profil donné à utiliser sur un ordinateur spécifié. Le profil est également copié dans le répertoire COLOR. |
RegisterCMMW | Associe une valeur d’identification spécifiée à la bibliothèque de liens dynamiques du module de gestion des couleurs (DLL CMM) spécifiée. Lorsque cet ID apparaît dans un profil de couleur, Windows peut ensuite localiser le CMM correspondant afin de créer une transformation. |
SetDeviceGammaRamp | Définit la rampe gamma sur les tableaux d’affichage de couleur directe. |
SetStandardColorSpaceProfileW | Inscrit un profil spécifié pour un espace de couleur standard donné. Le profil peut être interrogé à l’aide de GetStandardColorSpaceProfileW. |
UninstallColorProfileW | Supprime un profil de couleur spécifié d’un ordinateur spécifié. Les fichiers associés sont éventuellement supprimés du système. |
désinscrireCMMW | Dissocie une valeur d’ID spécifiée à partir d’une bibliothèque de liens dynamiques de module de gestion des couleurs (DLL CMM). |
WcsAssociateColorProfileWithDevice | Associe un profil de couleur WCS spécifié à un appareil spécifié. |
WcsCreateIccProfile | Convertit un profil WCS en profil ICC. |
WcsDisassociateColorProfileFromDevice | Dissocie un profil de couleur WCS spécifié avec un appareil spécifié sur un ordinateur spécifié. |
WcsEnumColorProfiles | Énumère tous les profils de couleur qui répondent aux critères d’énumération dans l’étendue de gestion des profils spécifiée. |
WcsEnumColorProfilesSize | Retourne la taille, en octets, de la mémoire tampon requise par les WcsEnumColorProfiles fonction pour énumérer les profils de couleur. |
WcsGetDefaultColorProfile | Récupère le profil de couleur par défaut d’un appareil ou la valeur par défaut indépendante de l’appareil si l’appareil n’est pas spécifié. |
WcsGetDefaultColorProfileSize | Retourne la taille, en octets, du nom de profil de couleur par défaut d’un appareil, y compris la NULL terminateur. |
WcsGetDefaultRenderingIntent | Récupère l’intention de rendu par défaut dans l’étendue de gestion de profil spécifiée. |
WcsGetUsePerUserProfiles | Détermine si l’utilisateur a choisi d’utiliser une liste d’associations de profils par utilisateur pour l’appareil spécifié. |
WcsOpenColorProfileW | Crée un handle dans un profil de couleur spécifié. |
WcsSetDefaultColorProfile | Définit le nom de profil de couleur par défaut du type de profil spécifié dans l’étendue de gestion de profil spécifiée. |
WcsSetDefaultRenderingIntent | Définit l’intention de rendu par défaut dans l’étendue de gestion de profil spécifiée. |
WcsSetUsePerUserProfiles | Permet à l’utilisateur de spécifier s’il faut utiliser une liste d’associations de profils par utilisateur pour l’appareil spécifié. |
Fonctions de consommation de profil
Les API de consommation de profil sont ces API dans ICM2 qui prennent des profils ICC ou WCS XML, des handles de profil ou des intentions de rendu en tant que paramètres, et un ensemble de nouvelles API pour la prise en charge des profils WCS pour le code de gestion des couleurs d’application.
Profils et fonctions de gestion des profils
Le flux de travail de gestion des profils est basé sur des API ICM2 existantes qui sont augmentées pour fournir des fonctionnalités supplémentaires pour la révision du code d’application.
Les profils contiennent des informations utilisées par les algorithmes de traitement des couleurs pour traduire la couleur entre différents espaces de couleurs. La gestion des profils permet d’interroger et de spécifier les profils utilisés à différentes étapes par le modèle de traitement des couleurs pour gérer la sortie de couleur de différents périphériques avec diverses caractéristiques de couleur.
La gestion des profils fournit l’ensemble de fonctionnalités suivant :
- Installation de profils de couleur à utiliser dans le système.
- Association d’un ou de plusieurs profils de couleur installés à n’importe quel appareil particulier.
- Choix d’un profil de couleur par défaut d’un type particulier parmi les profils disponibles pour une utilisation dans une phase particulière du traitement des couleurs. Il peut s’agir d’un appareil parmi les profils associés à celui-ci, ou parmi les profils installés dans le système et non spécifiques de l’appareil.
- Énumération de profils de couleur qui répondent à des critères particuliers parmi les profils installés dans le système.
Les extensions de nom de fichier de profil WCS sont « .cdmp » pour les MPM, .camp » pour les camps et .gmmp » pour les GMMP.
gestion des profils par utilisateur et activation de l’exécution dans le contexte LUA
L’objectif de la conception décrite dans le document actuel est le suivant :
- L’implémentation ICM2 héritée ne prend pas en charge la gestion des profils par utilisateur. Les différents utilisateurs ne peuvent pas avoir leurs propres paramètres de profil. Dans Vista, l’infrastructure de gestion des profils WCS permet aux utilisateurs de configurer des paramètres de profil individuels pour la plupart des fonctionnalités.
- Toutes les API de gestion de profil ICM2 héritées modifient les paramètres à l’échelle du système et nécessitent des privilèges d’administration. Dans Windows Vista, tous les utilisateurs s’exécutent dans des paramètres LUA (Minimum-privileged User Account) la plupart du temps, et les administrateurs peuvent élever les privilèges de manière sélective pour exécuter des applications qui modifient les paramètres à l’échelle du système. Dans la gestion des profils WCS, tous les paramètres de profil par utilisateur sont configurables dans le contexte LUA. Les applications de gestion des profils peuvent s’exécuter en tant que paramètres LUA, augmentant leur étendue d’utilisation et garantissant que la sécurité du système n’est pas compromise.
La gestion des profils dans Vista offre les améliorations suivantes sur l’infrastructure ICM2 héritée :
- Il permet l’association de profils avec les appareils, les paramètres de profil par défaut et l’énumération des profils dans l’étendue à l’échelle du système et par utilisateur.
- L’installation d’un profil reste à l’échelle du système et nécessite des privilèges d’administrateur. Cela est cohérent avec l’installation de profil pendant l’installation de l’appareil, car l’installation de l’appareil est à l’échelle du système et nécessite des privilèges d’administration.
Si les appareils peuvent être installés à partir du contexte LUA sont particuliers à ce qui est pris en charge pour cette classe d’appareil. Par exemple, dans Vista, il est possible d’effectuer une installation d’imprimante à partir du contexte LUA si l’utilisateur a reçu des droits pour copier des fichiers dans le magasin de pilotes par un administrateur de domaine à l’aide de stratégies de magasin de pilotes. L’infrastructure de gestion des profils de couleur n’a pas besoin de faire quelque chose de spécial à cet égard, car l’installation se produit dans le contexte du spouleur.
- La modification des paramètres de profil dans l’étendue par utilisateur peut être effectuée dans le contexte LUA ; Les modifications à l’échelle du système nécessitaient des privilèges d’administration. Les opérations de gestion des profils qui nécessitent la lecture des informations de configuration peuvent être effectuées dans le contexte LUA pour les paramètres à l’échelle du système et par utilisateur.
L’étendue de gestion des profils indique l’étendue des opérations effectuées ; par utilisateur ou à l’échelle du système.
Pour chaque opération, il est indiqué s’il peut être effectué à partir du contexte LUA. Si une opération ne peut pas être effectuée dans le contexte LUA, l’API de gestion des profils correspondante retourne un échec avec accès refusé. Les applications utilisant l’API, telles que le Panneau de configuration de gestion des couleurs, peuvent permettre à l’utilisateur d’élever le contexte d’administration (à l’aide d’OTS ou d’une interface utilisateur de consentement), puis d’appeler l’API à partir du contexte élevé afin que l’opération réussisse.
Opération
Étendue de gestion des profils
Pré-condition
Post-condition
Exécutable dans le contexte LUA
${ROWSPAN2}$Install profile${REMOVE}$
Système à l’échelle du système
Profil copié, installé dans le système et disponible pour une utilisation. Le profil est énumérable dans l’étendue du système et de l’utilisateur actuel pour tous les utilisateurs.
Pendant l’installation du pilote de périphérique, régie par les stratégies d’installation du pilote. Non, sinon.
Utilisateur actuel
Non pris en charge
${ROWSPAN2}$Uninstall profile${REMOVE}$
Système à l’échelle du système
Le profil est installé dans le système
Profil désinstallé du système et éventuellement supprimé du magasin de profils. Le profil n’est plus disponible pour une utilisation et n’est pas énumérable dans n’importe quelle étendue.
Non
Utilisateur actuel
Non pris en charge
${ROWSPAN2}$Associate profil avec device${REMOVE}$
Système à l’échelle du système
Le profil est installé et est de type ICC ou CDMP
Le profil est disponible pour une utilisation avec l’appareil par tous les utilisateurs. Il est énumérable, dans l’étendue du système et également dans l’étendue actuelle de l’utilisateur pour tous les utilisateurs, comme associé à l’appareil.
Non
Utilisateur actuel
Le profil est installé. Il n’importe pas si le profil est déjà associé à l’appareil dans l’étendue du système et est de type ICC ou CDMP.
Le profil est disponible pour une utilisation avec l’appareil par l’utilisateur actuel. Il est énumérable uniquement dans l’étendue actuelle de l’utilisateur (sauf s’il existe également une association à l’échelle du système) associée à l’appareil.
Oui
${ROWSPAN2}$Disassociate profil de l’appareil${REMOVE}$
Système à l’échelle du système
Le profil est associé à l’appareil dans l’étendue du système et est de type ICC ou CDMP
Le profil n’est plus disponible pour être utilisé (à l’exception des utilisateurs qui ont également cette association dans leur étendue d’utilisateur actuel). Il n’est pas énumérable dans l’étendue du système. Il peut être énumérable dans l’étendue de l’utilisateur actuel, cependant, pour un utilisateur qui a cette association dans son étendue.
Non
Utilisateur actuel
Le profil est associé à l’appareil dans l’étendue actuelle de l’utilisateur (qu’il soit associé à l’étendue à l’échelle du système) et est de type ICC ou CDMP.
Le profil n’est plus disponible pour une utilisation, ou énumérable comme associé à l’appareil, par l’utilisateur actuel (sauf s’il est également associé à l’étendue du système à l’appareil).
Oui
${ROWSPAN2}$Set profil pour un type (DMP ou ICC) comme valeur par défaut pour un appareil${REMOVE}$
Système à l’échelle du système
Le profil est de type ICC ou CDMP
Le profil est utilisé par défaut, pour le type particulier avec l’appareil, pour tous les utilisateurs, à l’exception de ceux qui ont remplacé ce paramètre dans leur étendue d’utilisateur actuel. (Le profil est installé et associé à l’ensemble du système de l’appareil, si ce n’est pas déjà le cas.)
Non
Utilisateur actuel
Le profil est de type ICC ou CDMP
Le profil est utilisé par défaut pour le type particulier avec l’appareil en cas d’utilisateur actuel, quelle que soit la valeur par défaut à l’échelle du système pour cela. (Le profil est installé et associé à l’appareil pour l’utilisateur actuel, si ce n’est pas déjà le cas.)
Oui, si le profil est déjà installé
${ROWSPAN2}$Set profil pour un type (ICC, DMP, CAMP, GMMP) et une combinaison de sous-types comme valeur par défaut globale${REMOVE}$
Système à l’échelle du système
Seuls les profils ICC et CDMP peuvent être associés aux appareils.
Le profil est utilisé par défaut pour le type particulier. Les utilisateurs peuvent remplacer ce paramètre dans l’étendue actuelle de l’utilisateur. (Le profil est installé, si ce n’est pas déjà le cas.)
Non
Utilisateur actuel
Seuls les profils ICC et CDMP peuvent être associés aux appareils.
Le profil est utilisé par défaut pour le type particulier pour l’utilisateur actuel. (Le profil est installé, si ce n’est pas déjà le cas.)
Oui, si le profil est déjà installé.
${ROWSPAN2}$Erase le remplacement de l’utilisateur actuel pour un paramètre de profil par défaut particulier, afin que la valeur par défaut du système soit toujours utilisée (comme secours) même pour l’étendue de l’utilisateur actuel.${REMOVE}$
Système à l’échelle du système
Sans objet
Utilisateur actuel
Même pour les requêtes utilisateur actuelles sur les paramètres de profil par défaut, les paramètres à l’échelle du système sont retournés pour une utilisation.
Oui
${ROWSPAN2}$Enumerate profils installés répondant à des critères particuliers (comme la classe d’appareil, la classe de profil, etc.)${REMOVE}$
Système à l’échelle du système
Seuls les profils ICC et CDMP peuvent être associés et énumérés pour les appareils.
Les profils installés et répondant aux critères spécifiés dans l’étendue du système sont énumérés.
Oui
Utilisateur actuel
Seuls les profils ICC et CDMP peuvent être associés à des appareils et ainsi énumérés pour les appareils.
Les profils installés et répondant aux critères spécifiés dans l’étendue du système sont énumérés.
Oui
${ROWSPAN2}$Enumerate profils associés à un appareil particulier répondant à des critères particuliers, tels que la classe d’appareil et la classe de profil${REMOVE}$
Système à l’échelle du système
Seuls les profils ICC et CDMP peuvent être associés et énumérés pour les appareils.
Les profils associés à l’appareil dans l’étendue du système et qui répondent aux critères spécifiés dans l’étendue à l’échelle du système sont énumérés.
Oui
Utilisateur actuel
Seuls les profils ICC et CDMP peuvent être associés et énumérés pour les appareils.
Les profils disponibles comme associés à l’appareil dans l’étendue actuelle de l’utilisateur, qui incluent les associations à l’échelle du système et qui répondent aux critères spécifiés dans l’étendue de l’utilisateur actuel sont énumérés.
Oui
Les types de profil de couleur valides sont fournis par l’énumération COLORPROFILETYPE.
Les sous-types de profil de couleur valides sont fournis par l’énumération COLORPROFILESUBTYPE.
Les combinaisons type/sous-type de profil valides sont indiquées dans le tableau suivant.
COLORPROFILETYPE
COLORPROFILESUBTYPE valide
Notes
Valeur par défaut de l’appareil
Valeur par défaut globale
Utilisation prévue
Utilisation prévue
CPT_ICC
CPST_NONE
Obtenir/définir le profil ICC par défaut associé à un appareil
CPST_RGBWorkingSpace ou CPST_CustomWorkingSpace
Obtenir/définir le profil ICC en tant que profil RVB global ou espace de travail personnalisé. Voir remarque.
Les CPT_ICC COLORPROFILETYPE et les CPT_DMP s’excluent mutuellement. Le profil de couleur par défaut que vous définissez pour un espace de travail donné (RVB ou Personnalisé) peut être un profil ICC ou un profil DMP, mais pas les deux.
CPT_DMP
CPST_NONE
Obtenir/définir le profil DMP par défaut associé à un appareil
CPST_RGBWorkingSpace ou CPST_CustomWorkingSpace
Obtenir/définir un profil DMP en tant que profil RVB global ou espace de travail personnalisé. Voir remarque.
Les CPT_ICC COLORPROFILETYPE et les CPT_DMP s’excluent mutuellement. Le profil de couleur par défaut que vous définissez pour un espace de travail donné (RVB ou Personnalisé) peut être un profil ICC ou un profil DMP, mais pas les deux.
Note
Lorsque WcsSetDefaultColorProfile est appelé pour définir un profil DMP comme profil par défaut pour l’espace de travail RVB ou un espace de travail personnalisé, seul un profil DMP de type RVBVirtualDevice, LCD ou CRT est valide.
Lorsque WcsSetDefaultColorProfile est appelé pour définir un profil ICC comme profil par défaut pour l’espace de travail RVB ou un espace de travail personnalisé, seul un profil ICC dont la classe est « espace » ou « disp » et dont l’espace de couleur est « RVB » est valide.
L’architecture est conçue en fonction des exigences des opérations, comme indiqué dans les énumérations et les tableaux ci-dessus.
Couche d’API publique de gestion des profils
Étant donné que l’étendue de gestion des profils n’est pas prise en charge par les API ICM2 héritées, un nouvel ensemble d’API de gestion des profils WCS est requis pour définir l’étendue de gestion des profils comme utilisateur actuel ou à l’échelle du système. ? Les API ICM2 héritées continuent d’être prises en charge pour la compatibilité descendante et de travailler sur l’étendue de gestion des profils implicite pour l’appel. o API ICM2 qui fonctionnent sur l’étendue actuelle de l’utilisateur ? Cela concerne les opérations prises en charge pour l’étendue système et l’étendue actuelle des utilisateurs dans la gestion des profils WCS. Les API ICM2 héritées appellent les nouvelles API WCS avec l’étendue de gestion des profils en tant qu’utilisateur actuel. Cela est judicieux du point de vue de l’utilisateur, car cela active les paramètres par utilisateur à partir d’applications héritées et exécute également la plupart des opérations dans le contexte LUA. o API ICM2 qui fonctionnent sur une étendue à l’échelle du système ? Cela concerne les opérations (profils d’installation et de désinstallation) qui prennent en charge uniquement l’étendue à l’échelle du système. Aucune nouvelle API de gestion des profils WCS n’est créée et les API existantes peuvent être modifiées.
Les implémentations sous-jacentes des opérations de gestion des profils fonctionnent sur les entités de données de configuration suivantes pour créer le contexte des algorithmes de traitement des couleurs afin de fournir des fonctionnalités de gestion des couleurs. Il s’agit de paramètres spécifiques ou globaux (indépendants de l’appareil). o Données de configuration spécifiques de l’appareil : ? Liste des profils associés à un appareil particulier. ? Profil par défaut pour différents types de profil associés à un appareil. ? Mode correspondant des profils utilisés pour l’énumération. o Données de configuration globales : ? Liste des profils installés dans le système. ? Profil par défaut global pour différents types de profil. ? Les implémentations sous-jacentes du stockage de données de configuration prennent l’étendue de stockage pour les données de configuration (indépendantes de l’appareil ou spécifiques de l’appareil), qui peuvent être à l’échelle du système ou à l’utilisateur actuel. Cela diffère de l’étendue de gestion des profils. Une opération avec l’étendue de gestion des profils utilisateur actuel peut entraîner une lecture à partir d’une étendue de stockage à l’échelle du système si le paramètre utilisateur actuel de cette opération n’est pas présent. ? La couche API ICM2/WCS appelle cette couche de stockage pour obtenir et définir des données avec une étendue de stockage appropriée. La couche de stockage est transparente pour l’étendue de gestion des profils. Logique de combinaison de données à partir d’étendues de stockage à l’échelle du système et de l’utilisateur actuel pour créer ou mettre à jour une configuration en fonction de l’étendue de gestion des profils spécifiée par l’appelant d’API. Cette logique est présente dans la couche API ICM2/WCS.
Couche de stockage spécifique à l’appareil
Le stockage pour différentes classes d’appareils, comme l’impression, la capture ou l’affichage, peut être différent les uns des autres. Par exemple, les données de configuration d’un appareil d’impression doivent être stockées à l’aide d’API d’impression standard, telles que SetPrinterDataEx et GetPrinterDataEx, pour permettre aux profils d’être copiés et les paramètres à transférer sur une machine cliente pendant la connexion point-and-print. ? Cette couche exporte des fonctionnalités pour ouvrir le magasin, obtenir des données, définir des données et fermer le magasin à l’aide d’interfaces prédéfinies communes afin que la couche de stockage de configuration de gestion des profils puisse les appeler tout en étant transparente pour la façon dont les données sont stockées pour cet appareil.
Le diagramme suivant illustre cette architecture.
Couche d’API publique de gestion des profils
${ROWSPAN2}$Legacy API ICM2 pour les opérations qui prennent uniquement en charge l’étendue de gestion des profils à l’échelle du système dans Vista (installer, désinstaller et obtenir le répertoire de couleurs). Ils appellent la couche de stockage de configuration avec l’étendue de stockage appropriée.$${REMOVE}$
API ICM2 héritée pour les opérations qui prennent en charge à la fois l’étendue de gestion des profils utilisateur actuel et à l’échelle du système dans Vista (toutes les opérations autres que l’installation, la désinstallation et l’obtention d’un répertoire de couleurs). Ils fonctionnent implicitement sur l’étendue actuelle de l’utilisateur et appellent une nouvelle API WCS avec l’étendue de gestion des profils en tant qu’utilisateur actuel.
Nouvelle API WCS avec prise en charge de l’étendue de gestion des profils utilisateur à l’échelle du système et actuelle. Ils appellent la couche de stockage de configuration avec l’étendue de stockage appropriée.
Couche de stockage de configuration de la gestion des profils
Routines de configuration globales indépendantes de l’appareil
Routines de configuration spécifiques à l’appareil
${ROWSPAN3}$Profile la gestion des paramètres de profil par défaut indépendants de l’appareil, prise en charge dans l’étendue du stockage à l’échelle du système et à l’utilisateur actuel.${REMOVE}$
L’association d’appareils et la gestion des paramètres de profil par défaut spécifiques à l’appareil, prises en charge dans l’étendue du stockage à l’échelle du système et de l’utilisateur actuel.
couche de stockage Device-Specific
Imprimer un stockage spécifique
Afficher un stockage spécifique
Capturer un stockage spécifique
Les API ICM2 héritées pour les opérations qui prennent en charge uniquement l’étendue de gestion des profils à l’échelle du système dans Vista n’ont aucun changement de comportement. Les opérations d’installation et de désinstallation se trouvent dans cette catégorie.
Les API ICM2 héritées pour les opérations qui prennent en charge l’étendue de gestion des profils système et actuel ont leur comportement modifié pour interroger et configurer les paramètres actuels de l’utilisateur. Toutes les opérations autres que l’installation et la désinstallation sont comprises dans cette catégorie.