Compartilhar via


Usar o provedor de registro do sistema como um provedor de propriedades

Você pode usar o Provedor de Registro do Sistema como provedor de propriedades ou de instâncias.

Se você optar por acessar as interfaces do provedor de propriedades, precisará marcar suas classes do WMI para indicar sua intenção.

Para usar o provedor de registro do sistema como um provedor de propriedades

  • Defina sua classe do WMI com os qualificadores padrão DynProps, Provider e PropertyContext.

    O qualificador DynProps identifica uma classe como tendo propriedades mantidas pelo provedor de propriedades identificado pelo qualificador provider. O qualificador PropertyContext especifica o nome do valor do Registro a ser armazenado pela propriedade . O formato do qualificador PropertyContext é o mesmo que o formato do qualificador ClassContext, com valores adicionais de valuename e expression .

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

    Tanto valuename quando expression são opcionais. A configuração valuename só será usada se o valor do Registro tiver um nome. O uso de expression também é opcional e é destinado a dados do descritor de recursos. Para saber mais, confira Descrever um recurso para o Registro.

    O exemplo de código a seguir mostra como a classe usa o Provedor de Registro do Sistema como um provedor de propriedades para manter suas propriedades não chave.

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