次の方法で共有


WMI プロパティの追加

WMI クラスのプロパティは、マネージド オブジェクトに関するデータを記述します。 たとえば、HandleProcessIdPageFaultsWin32_Process クラスのプロパティとして定義されており、オペレーティング システム プロセスの側面を記述します。 詳細については、「プロパティ プロバイダーの作成」を参照してください。

MOF でのプロパティの定義

WMI プロパティは、オブジェクト内の側面または状態を表します。 単に値を取得して設定するメソッドを作成する代わりに、プロパティを作成できます。 たとえば、Win32_NetworkAdapterNetEnabled プロパティは、アダプターの状態が有効か無効かを示します。 ただし、Enable メソッドと Disable メソッドが、実際にはアダプターの状態を変更するアクションを実行します。

プロパティにはデータ型が必要です。 Win32_Process のプロパティ Handle のデータ型は string で、PageFaults のデータ型は uint32 です。 プロパティに 2 つの状態しか設定できない場合、プロパティのデータ型は通常ブール値に設定されます。

プロパティは配列にすることもできます。 たとえば、Win32_Trustee のセキュリティ識別子 (SID) プロパティは、SID を含むバイト配列 (uint8) です。 プロパティには、別の WMI クラスの 1 つ以上のインスタンスへの参照である埋め込みオブジェクトを含めることができます。 たとえば、Win32_SecurityDescriptor の随意アクセス制御リスト (DACL) プロパティとシステム アクセス制御リスト (SACL) プロパティは、アクセス権を持つグループとアカウントを記述する Win32_ACE オブジェクトの配列です。 Win32_SecurityDescriptorGroup プロパティには、Win32_Trustee の 1 つのインスタンスへの参照が含まれています。 詳細については、「クラスにオブジェクトを埋め込む」を参照してください。

プロパティには、複数の "修飾子" を指定できます。 これらの修飾子は、Common Information Model (CIM) または WMI 修飾子、あるいは パフォーマンス カウンター クラス修飾子など、特定の型のクラスに固有である場合があります。 修飾子は、プロパティが読み取り専用である、または特定の特権なしで変更できないなど、プロパティの一部の側面を指定します。 たとえば、Win32_SecurityDescriptorDACL プロパティに書き込もうとするアプリケーションには、SeSecurityPrivilegeSeRestorePrivilege の特権が必要です。 詳細については、「修飾子の追加」を参照してください。

最後に、プロパティには名前が必要です。 プロパティには、標準的なプログラミング プラクティスの範囲内で任意の名前を付けることができます。 ただし、2 つの大きな例外があります。 最初に、"class" などの MOF キーワードをプロパティ名として使用することはできません。 次に、プロパティ名として "group" などの WQL キーワードを使用することもできません。 MOF と WQL のキーワードの詳細については、「MOF データ型」と「WQL (WMI 用 SQL)」を参照してください。

C++ と Managed Object Format (MOF) コードの両方で、クラスを宣言すると同時にクラスのプロパティを宣言します。

プロパティを定義するには

  • プロパティのデータ型、名前、および省略可能な既定値と修飾子を、クラス記述の中かっこの間に含めます。

    class MyClass 
    {
        [key] string   strProp;
        sint32         dwProp1 = 21;
        uint32         dwProp2;
    };
    

    前の例の MyClass クラスには、文字列、32 ビット符号付き整数、32 ビット符号なし整数の 3 つのプロパティがあります。 各プロパティには、大文字と小文字を区別しない名前と MOF データ型が割り当てられています。

    key 修飾子は、文字列プロパティを、クラスのインスタンスを一意に識別するキー プロパティとして定義します。 修飾子の詳細については、「修飾子の追加」を参照してください。

クラスの作成