ValueMap et qualificateurs de valeur

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

La propriété agit comme un index dans le tableau, contenant une valeur qui représente l’une des valeurs du tableau. À l’aide du code MOF, vous pouvez disposer des types suivants de mappages de valeurs :

  • Mappage de tableau à un entier.

    Vous pouvez définir un tableau avec le qualificateur Value et lier le tableau directement à une propriété entière, 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é ne peut prendre que des valeurs qui correspondent aux positions ordinales dans le tableau Valeur moins 1. Par exemple, la définition de l’état sur « 1 » correspond à la valeur « Error ». La propriété d’index ne peut prendre que des valeurs qui correspondent à des positions dans le tableau Valeur . Par exemple, si le tableau comporte 10 entrées, la propriété d’index peut être comprise entre 0 et 9, et non 30 ou 177.

  • Mappage de tableau vers un autre mappage de tableau sur un entier.

    Si vous souhaitez créer un index qui n’utilise pas de système ordinal de comptage, utilisez le qualificateur ValueMap . Le qualificateur ValueMap configure 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;
    

    Bien que vous deviez placer les valeurs de ValueMap entre guillemets, WMI considère les entiers de valeurs. Par conséquent, dans cet exemple, vous pouvez définir la propriété Status sur un entier dans le jeu 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 Valeur . Par exemple, la définition de l’état sur 0 correspond à « Inconnu ».

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

    Si vous ne souhaitez pas utiliser un entier pour indexer votre tableau, vous pouvez plutôt utiliser une chaîne pour contenir l’une des valeurs possibles dans votre tableau. Pour ce faire, vous devez définir à la fois un tableau Value et ValueMap qui contiennent 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 réelles de la propriété sont les entrées du tableau ValueMap . Par exemple, vous pouvez définir l’état sur « OK » ou « Inconnu ».

Il est à l’application de tirer parti des mappages d’une manière utile. Il incombe au fournisseur d’appliquer une plage légale de valeurs.

Notes

Si vous décidez d’utiliser les qualificateurs ValueMapValue/ ouBitMapBitValues/, déterminez si l’une des valeurs indiquées peut se produire simultanément. Si plusieurs valeurs simultanées peuvent exister, vous devez utiliser BitMapBitValues/. Si toutes les valeurs sont mutuellement exclusives, vous devez utiliser les qualificateurs ValueMapValue/.

BitMap et BitValues