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


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

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

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

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

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

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

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

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

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

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