プロパティ プロバイダーとしてシステム レジストリ プロバイダーを使用する
システム レジストリ プロバイダーは、インスタンスまたはプロパティ プロバイダーとして使用できます。
プロパティ プロバイダー インターフェイスにアクセスする場合は、目的を示すように WMI クラスにマークを付ける必要があります。
プロパティ プロバイダーとしてシステム レジストリ プロバイダーを使用するには
DynProps、Provider、および PropertyContext という標準修飾子を使用して WMI クラスを定義します。
DynProps 修飾子は、Provider 修飾子によって識別されるプロパティ プロバイダーで保守されるプロパティを持つクラスを識別します。 PropertyContext 修飾子は、プロパティによって格納されるレジストリ値の名前を指定します。 PropertyContext 修飾子の形式は、ClassContext 修飾子の形式と同じものに、"valuename" と "expression" の値が追加されています。
MACHINE_NAME | Subtree\\KeyPath [|valuename [expression]]
valuename と expression はどちらも省略可能です。 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; };