Usare il provider del Registro di sistema come provider di proprietà

È possibile usare il provider del Registro di sistema come istanza o come provider di proprietà.

Se si sceglie di accedere alle interfacce del provider di proprietà, è necessario contrassegnare le classi WMI per indicare l'intenzione.

Per usare il provider del Registro di sistema come provider di proprietà

  • Definire la classe WMI con i qualificatori standard DynProps, Provider e PropertyContext .

    Il qualificatore DynProps identifica una classe con proprietà gestite dal provider di proprietà identificato dal qualificatore Provider . Il qualificatore PropertyContext specifica il nome del valore del Registro di sistema da archiviare dalla proprietà . Il formato del qualificatore PropertyContext corrisponde al formato del qualificatore ClassContext con valori di valore e di espressione aggiuntivi.

    MACHINE_NAME | Subtree\\KeyPath [|valuename [expression]]
    

    Sia valuename che expression sono facoltativi. L'impostazione valuename viene utilizzata solo se il valore del Registro di sistema ha un nome. L'espressione è facoltativa e viene usata anche per i dati del descrittore di risorse. Per altre informazioni, vedere Descrizione di una risorsa per il Registro di sistema.

    Nell'esempio di codice seguente viene illustrato come la classe usa il provider del Registro di sistema come provider di proprietà per mantenere le relative proprietà non chiave.

    [DYNPROPS]
    class PropReg {
    
        [KEY]  STRING  MyKey;
        STRING Logging;
        STRING Events;
        uint32 Resource1;
    };
    
    [DYNPROPS]
    instance of PropReg
    {
      MyKey = "a";
    
      [PropertyContext("local|hkey_local_Machine\\software\\microsoft\\
       wbem\\cimom|Logging"), Dynamic, Provider("RegPropProv")]  Logging;
    
      [PropertyContext("local|hkey_local_Machine\\software\\microsoft\\
       wbem\\cimom|EnableEvents"), Dynamic, Provider("RegPropProv")]
       Events;
    
      [PropertyContext("local|hkey_local_Machine\\hardware\\
       ResourceMap\\Hardware Abstraction Layer\\PC Compatible Eisa/isa 
       hal|.raw(\"Internal\")(0)(0)(\"interrupt.vector\")"), Dynamic, 
       Provider("RegPropProv")]  Resource1;
    };