Compartir a través de


ValueMap y Value (calificadores)

Un mapa de valores es una matriz vinculada a una propiedad con los calificadores Value y ValueMap.

La propiedad actúa como un índice en la matriz, que contiene un valor que representa uno de los valores de la matriz. Con el código MOF, puede tener los siguientes tipos de asignaciones de valores:

  • Asignación de matriz a un entero.

    Puede definir una matriz con el calificador Value y vincular la matriz directamente a una propiedad de entero, como se muestra en el ejemplo siguiente:

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

    En este ejemplo, el valor de la propiedad Status es un índice en la matriz de cadenas definida por Value. La propiedad solo puede asumir valores que corresponden a las posiciones ordinales de la matriz Value menos 1. Por ejemplo, establecer Status en "1" se asigna al valor "Error". La propiedad index solo puede tomar valores que corresponden a posiciones de la matriz Value. Por ejemplo, si la matriz tiene 10 entradas, la propiedad index puede contar entre 0 y 9, no 30 o 177.

  • Asignación de matriz a otra asignación de matriz a un entero.

    Si desea crear un índice que no use un sistema ordinal de recuento, use el calificador ValueMap. El calificador ValueMap configura otra matriz que contiene un sistema de numeración de índices arbitrarios, como se muestra en el ejemplo siguiente:

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

    Aunque debe colocar los valores de ValueMap entre comillas, WMI tiene en cuenta los valores enteros. Por lo tanto, en este ejemplo, puede establecer la propiedad Status en un entero del conjunto ValueMap : 1, 3, 99 o 0. WMI asigna cada entero de una posición ordinal de la matriz de cadenas ValueMap a una posición correspondiente de la matriz Value. Por ejemplo, al establecer Status en 0 se asigna a "Unknown".

  • Asignación de matriz a otra asignación de matriz a una cadena.

    Si no quiere usar un entero para indexar la matriz, puede usar una cadena para contener uno de los valores posibles de la matriz. Para ello, debe definir una matriz Value y ValueMap que contengan cadenas, como se muestra en el ejemplo siguiente:

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

    Con una propiedad string, los valores permitidos reales de la propiedad son las entradas de la matriz ValueMap. Por ejemplo, puede establecer Status en "Ok" o "Unknown".

Es necesario que la aplicación aproveche las asignaciones de una manera útil. Es el proveedor el que exige un intervalo legal de valores.

Comentarios

Al decidir si se deben usar los calificadores ValueMap/Value o BitMap/BitValues, determine si alguno de los valores que se indican podría producirse simultáneamente. Si pueden existir varios valores simultáneos, debe usar BitMap/BitValues. Si todos los valores son mutuamente excluyentes, debe usar los calificadores ValueMap/Value.

BitMap y BitValues