Qualificatori valueMap e valore

Una mappa dei valori è una matrice collegata a una proprietà con i qualificatori Value e ValueMap .

La proprietà funge da indice nella matrice, mantenendo un valore che rappresenta uno dei valori nella matrice. Usando il codice MOF, è possibile avere i tipi di mappe valore seguenti:

  • Mapping di matrici a un numero intero.

    È possibile definire una matrice con il qualificatore Value e collegare la matrice direttamente a una proprietà integer, come illustrato nell'esempio seguente:

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

    In questo esempio, il valore della proprietà Status è un indice nella matrice di stringhe definita da Value. La proprietà può accettare solo valori che corrispondono alle posizioni ordinali nella matrice Value meno 1. Ad esempio, impostando Status su "1" viene mappato al valore "Error". La proprietà index può accettare solo valori che corrispondono alle posizioni nella matrice Value . Ad esempio, se la matrice contiene 10 voci, la proprietà index può eseguire la storia da 0 a 9, non 30 o 177.

  • Mapping di matrici a un altro mapping di matrice a un numero intero.

    Se si desidera creare un indice che non utilizza un sistema ordinale di conteggio, usare il qualificatore ValueMap . Il qualificatore ValueMap configura un'altra matrice che contiene un sistema di numerazione di indici arbitrari, come illustrato nell'esempio seguente:

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

    Sebbene sia necessario inserire i valori di ValueMap tra virgolette, WMI considera i valori interi. In questo esempio è pertanto possibile impostare la proprietà Status su un numero intero nel set ValueMap : 1, 3, 99 o 0. WMI esegue il mapping di ogni numero intero da una posizione ordinale nella matrice di stringhe ValueMap a una posizione corrispondente nella matrice Value . Ad esempio, impostando Stato su 0 viene eseguito il mapping a "Sconosciuto".

  • Mapping di matrici a un altro mapping di matrice a una stringa.

    Se non si vuole usare un numero intero per indicizzare la matrice, è invece possibile usare una stringa per contenere uno dei valori possibili nella matrice. A tale scopo, è necessario definire una matrice Value e ValueMap che contengono entrambe le stringhe, come illustrato nell'esempio seguente:

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

    Con una proprietà stringa, i valori consentiti effettivi della proprietà sono le voci nella matrice ValueMap . Ad esempio, è possibile impostare Stato su "OK" o "Sconosciuto".

Spetta all'applicazione sfruttare i mapping in modo utile. Spetta al provider applicare un intervallo legale di valori.

Commenti

Per decidere se usare i qualificatori ValueMap/Value o BitValue BitValues di BitMap/, determinare se uno dei valori indicati potrebbe verificarsi contemporaneamente. Se possono esistere più valori simultanei, è necessario usare BitMap/BitValues. Se tutti i valori si escludono a vicenda, è consigliabile usare i qualificatori ValueMap/Value .

BitMap e BitValues