Поделиться через


Использование поставщика системного реестра в качестве поставщика свойств

Поставщик системного реестра можно использовать как экземпляр или как провайдер свойств.

Если вы решили получить доступ к интерфейсам поставщика свойств, необходимо пометить классы WMI, чтобы указать ваше намерение.

Использование поставщика системного реестра в качестве поставщика свойств

  • Определите класс WMI с помощью стандартных квалификаторов DynProps, Providerи PropertyContext.

    Квалификатор DynProps определяет класс как имеющий свойства, которые поддерживаются поставщиком, определяемым квалификатором . Квалификатор PropertyContext указывает имя значения реестра, хранящегося свойством. Формат квалификатора PropertyContext совпадает с форматом квалификатора ClassContext с добавлением таких значений, как значениe имени и выражение.

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

    Оба имя_значения и выражение являются необязательными. Параметр имени значения используется только в том случае, если значение реестра имеет имя. Выражение также является необязательным и используется для данных дескриптора ресурсов. Для получения дополнительной информации см. описание ресурса для реестра.

    В следующем примере кода показано, как класс использует поставщика системного реестра в качестве поставщика свойств для поддержания его неключевых свойств.

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