ValueMap 및 Value 한정자

값 맵은 ValueValueMap 한정자를 사용하여 속성에 연결된 배열입니다.

속성은 배열의 값 중 하나를 나타내는 값을 가지고 배열의 인덱스 역할을 합니다. MOF 코드를 사용하면 다음과 같은 유형의 값 맵을 사용할 수 있습니다.

  • 정수에 대한 배열 매핑입니다.

    다음 예제와 같이 Value 한정자를 사용하여 배열을 정의하고 배열을 정수 속성에 직접 연결할 수 있습니다.

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

    이 예제에서 Status 속성 값은 Value로 정의된 문자열 배열의 인덱스입니다. 속성은 Value 배열에서 1을 뺀 서수 위치에 해당하는 값만 사용할 수 있습니다. 예를 들어 Status를 "1"로 설정하면 "Error" 값에 매핑됩니다. index 속성은 Value 배열의 위치에 해당하는 값만 사용할 수 있습니다. 예를 들어 배열에 10개의 항목이 있는 경우 index 속성은 30 또는 177이 아닌 0부터 9까지의 스토리가 될 수 있습니다.

  • 정수에 매핑하는 다른 배열에 대한 배열 매핑입니다.

    서수 계수 시스템을 사용하지 않는 인덱스를 만들려면 ValueMap 한정자를 사용합니다. ValueMap 한정자는 다음 예제와 같이 임의 인덱스 번호 매기기 시스템을 보유한 다른 배열을 설정합니다.

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

    ValueMap 값을 따옴표로 묶어야 하지만 WMI에서는 값을 정수로 간주합니다. 따라서 이 예제에서는 ValueMap 집합의 Status 속성을 정수(1, 3, 99 또는 0)로 설정할 수 있습니다. WMI는 ValueMap 문자열 배열의 서수 위치에서 Value 배열의 해당 위치에 각 정수에 매핑합니다. 예를 들어 Status를 0으로 설정하면 "Unknown" 값에 매핑됩니다.

  • 문자열에 매핑하는 다른 배열에 대한 배열 매핑입니다.

    정수로 배열을 인덱싱하기를 원하지 않는 경우 대신 문자열을 사용하여 배열에 가능한 값 중 하나를 저장할 수 있습니다. 이렇게 하려면 다음 예제와 같이 문자열을 모두 포함하는 ValueValueMap 배열을 모두 정의해야 합니다.

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

    문자열 속성을 사용하면 속성의 실제 허용 값은 ValueMap 배열의 항목입니다. 예를 들어 Status를 "OK" 또는 "Unknown"으로 설정할 수 있습니다.

애플리케이션에서 매핑을 유용하게 활용하는지에 달려 있습니다. 합당한 값 범위를 적용하는 것은 공급자의 책임입니다.

설명

ValueMap/Value 또는 BitMap/BitValues 한정자를 사용할지 여부를 결정할 때 표시되는 값이 동시에 발생할 수 있는지 여부를 결정합니다. 동시 값이 여러 개 존재할 수 있는 경우 BitMap/BitValues를 사용해야 합니다. 모든 값이 상호 배타적인 경우 ValueMap/Value 한정자를 사용해야 합니다.

BitMap 및 BitValues