Квалификаторы ValueMap и Value

Карта значений — это массив, связанный со свойством с квалификаторами Value и ValueMap .

Свойство выступает в качестве индекса в массиве, удерживая значение, представляющее одно из значений в массиве. С помощью кода MOF можно использовать следующие типы карт значений:

  • Сопоставление массива с целым числом.

    Можно определить массив с квалификатором value и связать массив непосредственно с целым числом, как показано в следующем примере:

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

    В этом примере значение свойства Status является индексом массива строк, определенного значением Value. Свойство может принимать только значения, соответствующие порядковой позиции в массиве значений минус 1. Например, если для параметра "Состояние " задано значение "1", отображается значение "Ошибка". Свойство индекса может принимать только значения, соответствующие позициям в массиве значений . Например, если массив содержит 10 записей, свойство индекса может содержать от 0 до 9, а не от 30 до 177.

  • Сопоставление массивов с другим сопоставлением массива с целым числом.

    Если вы хотите создать индекс, который не использует порядковую систему подсчета, используйте квалификатор ValueMap . Квалификатор ValueMap настраивает другой массив, содержащий произвольную систему нумерации индексов, как показано в следующем примере:

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

    Хотя значения ValueMap необходимо поместить в кавычки, WMI считает целые числа значений. Таким образом, в этом примере можно задать для свойства Status целое число в наборе ValueMap : 1, 3, 99 или 0. WMI сопоставляет каждое целое число из порядкового номера в массиве строк ValueMap с соответствующей позицией в массиве значений . Например, если для параметра Status значение 0 задано значение "Неизвестно".

  • Сопоставление массива с другим сопоставлением массива со строкой.

    Если вы не хотите использовать целое число для индексирования массива, можно использовать строку для хранения одного из возможных значений в массиве. Для этого необходимо определить массив Value и ValueMap , содержащий строки, как показано в следующем примере:

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

    При использовании строкового свойства фактически допустимые значения свойства являются записями в массиве ValueMap . Например, можно задать для состояния "ОК" или "Неизвестно".

Приложение может воспользоваться преимуществами сопоставлений полезным способом. Поставщик может применить юридический диапазон значений.

Комментарии

При определении того, следует ли использовать квалификаторы ValueMapValue/ илиBitMapBitValues/, определите, может ли любое из указанных значений происходить одновременно. Если может существовать несколько параллельных значений, необходимо использовать BitMapBitValues/. Если все значения являются взаимоисключающими, следует использовать квалификаторы ValueMapValue/.

BitMap и BitValues