Freigeben über


Verwenden des Systemregistrierungsanbieters als Eigenschaftenanbieter

Sie können den Systemregistrierungsanbieter entweder als Instanz oder Eigenschaftenanbieter verwenden.

Wenn Sie auf die Schnittstellen des Eigenschaftenanbieters zugreifen möchten, müssen Sie Ihre WMI-Klassen so markieren, dass Ihre Absicht angegeben wird.

So verwenden Sie den Systemregistrierungsanbieter als Eigenschaftenanbieter

  • Definieren Sie Ihre WMI-Klasse mit den Standardqualifizierern DynProps, Provider und PropertyContext.

    Der DynProps-Qualifizierer identifiziert eine Klasse mit Eigenschaften, die vom Eigenschaftenanbieter verwaltet werden, der vom Provider-Qualifizierer identifiziert wird. Der PropertyContext-Qualifizierer gibt den Namen des Registrierungswerts an, der von der Eigenschaft gespeichert werden soll. Das Format des PropertyContext-Qualifizierers entspricht dem Format des ClassContext-Qualifizierers mit den zusätzlichen Werten Valuename und expression.

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

    valuename und expression sind optional. Die Einstellung valuename wird nur verwendet, wenn der Registrierungswert einen Namen hat. expression ist ebenfalls optional und wird für Ressourcenbeschreibungsdaten verwendet. Weitere Informationen finden Sie unter Beschreiben einer Ressource für die Registrierung.

    Das folgende Codebeispiel zeigt, wie die Klasse den Systemregistrierungsanbieter als Eigenschaftenanbieter verwendet, um ihre Nichtschlüsseleigenschaften zu verwalten.

    [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;
    };