ValueMap et Value, qualificateurs

Un mappage de valeurs est un tableau qui est lié à une propriété ayant les qualificateurs Value et ValueMap.

La propriété joue le rôle d’index dans le tableau, en stockant une valeur qui représente l’une des valeurs présentes dans le tableau. Le code MOF fournit les types de mappages de valeurs suivants :

  • Mappage d’un tableau à un entier.

    Vous pouvez définir un tableau avec le qualificateur Value et lier ce tableau directement à une propriété de type entier, comme illustré dans l’exemple suivant :

    [Values {"OK", "Error", "Degraded", "Unknown"}, Read]
    sint32 Status;
    

    Dans cet exemple, la valeur de la propriété Status est un index dans le tableau de chaînes défini par Value. La propriété peut uniquement être définie sur des valeurs qui correspondent aux positions ordinales dans le tableau Value moins 1. Par exemple, si la propriété Status est définie sur "1", elle est mappée à la valeur "Error". La propriété Index peut être définie uniquement sur des valeurs qui correspondent aux positions dans le tableau Value. Par exemple, si le tableau comporte dix entrées, la propriété Index peut être définie sur une valeur comprise entre 0 et 9, mais pas 30 ni 177.

  • Mappage de tableau à un autre mappage de tableau à un entier.

    Si vous souhaitez créer un index qui n’utilise pas de système de comptage ordinal, choisissez le qualificateur ValueMap. Le qualificateur ValueMap définit un autre tableau qui contient un système de numérotation d’index arbitraire, comme illustré dans l’exemple suivant :

    [ValueMap {"1", "3", "99", "0"}, 
     Values {"OK", "Error", "Degraded", "Unknown"}, Read]
    sint32 Status;
    

    Vous devez placer les valeurs de ValueMap entre guillemets, mais WMI considère les valeurs comme des entiers. Par conséquent, dans cet exemple, vous pouvez définir la propriété Status sur l’un des entiers de l’ensemble ValueMap : 1, 3, 99 ou 0. WMI mappe chaque entier d’une position ordinale dans le tableau de chaînes ValueMap à une position correspondante dans le tableau Value. Par exemple, si la propriété Status est définie sur 0, elle est mappée à la valeur "Unknown".

  • Mappage de tableau à un autre mappage de tableau à une chaîne.

    Si vous ne souhaitez pas utiliser d’entier pour indexer votre tableau, vous pouvez utiliser à la place une chaîne qui contient l’une des valeurs possibles listées dans le tableau. Pour ce faire, vous devez définir un tableau Value et un tableau ValueMap qui contiennent tous deux des chaînes, comme illustré dans l’exemple suivant :

    [ValueMap {"OK", "Error", "Degraded", "Unknown"}, 
     Values {"OK", "Error", "Degraded", "Unknown"}, Read]
    string Status;
    

    Avec une propriété de chaîne, les valeurs autorisées possibles de la propriété sont les entrées du tableau ValueMap. Par exemple, vous pouvez définir Status sur "OK" ou "Unknown".

Il appartient à l’application d’utiliser au mieux les mappages. Il appartient au fournisseur d’appliquer une plage autorisée de valeurs.

Notes

Pour choisir lequel des qualificateurs ValueMap/Value ou BitMap/BitValues utiliser, déterminez si l’une des valeurs indiquées peut exister en même temps qu’une autre. Si plusieurs valeurs peuvent coexister, vous devez utiliser BitMap/BitValues. Si toutes les valeurs s’excluent mutuellement, vous devez utiliser les qualificateurs ValueMap/Value.

BitMap et BitValues