次の方法で共有


プロパティ プロバイダーとしてシステム レジストリ プロバイダーを使用する

システム レジストリ プロバイダーは、インスタンスまたはプロパティ プロバイダーとして使用できます。

プロパティ プロバイダー インターフェイスにアクセスする場合は、目的を示すように WMI クラスにマークを付ける必要があります。

プロパティ プロバイダーとしてシステム レジストリ プロバイダーを使用するには

  • DynPropsProvider、および PropertyContext という標準修飾子を使用して WMI クラスを定義します。

    DynProps 修飾子は、Provider 修飾子によって識別されるプロパティ プロバイダーで保守されるプロパティを持つクラスを識別します。 PropertyContext 修飾子は、プロパティによって格納されるレジストリ値の名前を指定します。 PropertyContext 修飾子の形式は、ClassContext 修飾子の形式と同じものに、"valuename" と "expression" の値が追加されています。

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

    valuenameexpression はどちらも省略可能です。 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;
    };