Udostępnij za pośrednictwem


Używanie dostawcy rejestru systemu jako dostawcy właściwości

Możesz użyć dostawcy rejestru systemu jako instancji albo dostawcy właściwości.

Jeśli zdecydujesz się na uzyskanie dostępu do interfejsów dostawcy właściwości, musisz oznaczyć klasy WMI, aby wyraźnie wskazać swoje zamiary.

Aby używać dostawcy rejestru systemowego jako dostawcy właściwości

  • Zdefiniuj klasę WMI z kwalifikatorami standardowymi DynProps, Provideri PropertyContext.

    Kwalifikator DynProps identyfikuje klasę jako taką, która posiada właściwości utrzymywane przez dostawcę właściwości zidentyfikowanego za pomocą kwalifikatora Provider. Kwalifikator PropertyContext określa nazwę wartości rejestru, która ma być przechowywana przez właściwość . Format kwalifikatora PropertyContext jest taki sam jak format kwalifikatora ClassContext, wraz z dodatkowymi wartościami nazwy i wartości wyrażenia .

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

    Oba nazwa_wartości i wyrażenie są opcjonalne. Ustawienie valuename jest używane tylko wtedy, gdy wartość rejestru ma nazwę. Wyrażenie jest również opcjonalne i jest używane na potrzeby danych deskryptora zasobów. Aby uzyskać więcej informacji, zobacz Opis zasobu dla rejestru.

    W poniższym przykładzie kodu pokazano, jak klasa używa dostawcy rejestru systemu jako dostawcy właściwości, aby zachować swoje właściwości niekluczowe.

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