Compartilhar via


Qualificadores valueMap e value

Um mapa de valor é uma matriz vinculada a uma propriedade com os qualificadores value e ValueMap.

A propriedade atua como um índice na matriz, mantendo um valor que representa um dos valores na matriz. Usando o código MOF, você pode ter os seguintes tipos de mapas de valor:

  • Mapeamento de matriz para um inteiro.

    Você pode definir uma matriz com o qualificador Value e vincular a matriz diretamente a uma propriedade inteiro, conforme mostrado no exemplo a seguir:

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

    Neste exemplo, o valor da propriedade status é um índice na matriz de cadeia de caracteres definida por Value. A propriedade só pode assumir valores que correspondem às posições ordinais na matriz de valor de menos 1. Por exemplo, definir Status como "1" mapeia para o valor "Erro". A propriedade index pode ter apenas valores que correspondem a posições na matriz value. Por exemplo, se a matriz tiver 10 entradas, a propriedade de índice poderá ser de 0 a 9, não 30 ou 177.

  • Mapeamento de matriz para outro mapeamento de matriz para um inteiro.

    Se você quiser criar um índice que não use um sistema ordinal de contagem, use o qualificador ValueMap. O qualificador ValueMap configura outra matriz que contém um sistema de numeração de índice arbitrário, conforme mostrado no exemplo a seguir:

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

    Embora você precise colocar os valores de ValueMap entre aspas, o WMI considera os valores inteiros. Portanto, neste exemplo, você pode definir a propriedade Status como um inteiro no ValueMap: 1, 3, 99 ou 0. O WMI mapeia cada inteiro de uma posição ordinal na matriz de cadeias de caracteres ValueMap para uma posição correspondente na matriz valor. Por exemplo, definir Status como 0 mapas como "Desconhecido".

  • Mapeamento de matriz para outro mapeamento de matriz para uma cadeia de caracteres.

    Se você não quiser usar um inteiro para indexar sua matriz, poderá usar uma cadeia de caracteres para manter um dos valores possíveis em sua matriz. Para fazer isso, você deve definir uma matriz Value e ValueMap que contêm cadeias de caracteres, conforme mostrado no exemplo a seguir:

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

    Com uma propriedade de cadeia de caracteres, os valores permitidos reais da propriedade são as entradas na matriz ValueMap. Por exemplo, você pode definir Status como "OK" ou "Desconhecido".

Cabe ao aplicativo aproveitar os mapeamentos de maneira útil. Cabe ao provedor impor um intervalo legal de valores.

Observações

Ao decidir se os ValueMap/Value ou BitMap/BitValues qualificadores, determine se algum dos valores indicados pode ocorrer simultaneamente. Se vários valores simultâneos puderem existir, você deverá usar BitMap/BitValues. Se todos os valores forem mutuamente exclusivos, você deverá usar os qualificadores ValueMap/Value.

BitMap e BitValues