Win32_PerfRawData クラスのサポート

Win32_PerfRawData からクラスを派生させる高パフォーマンス プロバイダーを作成する場合は、WMI からプロパティ値にデータを提供できるように、特定の規則に従う必要があります。

注意

パフォーマンス カウンターを作成するために WMI の高パフォーマンス プロバイダーを作成することは、どのバージョンの Windows オペレーティング システムでも推奨されません。 詳細については、「インスタンス プロバイダーを High-Performance プロバイダーに変換する」と「パフォーマンス ライブラリと WMI」を参照してください。

 

次の手順では、高パフォーマンス プロバイダーで Win32_PerfRawData クラスをサポートする方法について説明します。

Win32_PerfRawData クラスをサポートするには

  1. Root\CIMv2 名前空間にクラスを作成します。

    クラスは Win32_PerfRawData から派生し、Hiperf 修飾子を TRUE に設定する必要があります。 WDM (ドライバー) パフォーマンス データ クラスを root\wmi 名前空間に追加することもできます。 WMI の独自クラスを作成する方法の詳細については、「マネージ オブジェクト形式 (MOF) クラスの設計」を参照してください。

  2. Provider 修飾子で、プロバイダーを "NT5_GenericPerfProvider_V1" として指定します。

  3. 次のクラス レベル修飾子を指定します。

    • HiPerf
    • ロケール
    • PerfDetail
    • プロバイダー

    詳細については、「パフォーマンス カウンター クラスのクラス修飾子」を参照してください。 GenericPerfCtr 修飾子は、パフォーマンス ライブラリ データを WMI クラスに転送する ADAP プロセス用に予約されているため、定義しないでください。

  4. カウンター型の数式の計算に使用する適切なタイムスタンプと頻度のプロパティを設定します。

    これらのプロパティは Win32_PerfRawData から継承され、高パフォーマンス プロバイダーを作成する場合は、システム モニターにクラスを表示するためにこれらを入力する必要があります。

  5. クラスに Name というキー プロパティを含めます (シングルトン クラスではこのプロパティは必要ありません)。

    クラスで Name 以外のキー プロパティを使用することはできません。

  6. データ型が DWORD (uint32) または QWORD (uint64) のプロパティを作成します。 これらのプロパティは、パフォーマンス ライブラリに転送されるとパフォーマンス カウンターになります。

  7. クラス内のすべてのプロパティに対して、次のプロパティ レベル修飾子を指定します。

    • DisplayName
    • CounterType
    • DefaultScale
    • 説明
    • PerfDefault
    • PerfDetail

    詳細については、「パフォーマンス カウンター クラスのプロパティ修飾子」を参照してください。 さらに、Winperf.h ヘッダー ファイルには、PerfDetailCounterType に指定できる値が含まれています。

    WMI では、ローカライズに DisplayNameLocaleDescription の各修飾子が使用されます。 システム モニターがクラス データを適切に表示できるように、修正した修飾子を MS_409 (英語) 名前空間に追加する必要があります。 つまり、説明テキストを含む Description 修飾子を追加し、DisplayName 値を入力することで、プロパティ定義を修正します。 クラスでサポートされている他のロケール名前空間にも、修正した修飾子を追加する必要があります。 修正した修飾子を提供していないロケールからユーザーがデータを要求した場合、WMI は既定で MS_409 名前空間で指定された定義に設定されます。

  8. 基本値が必要なカウンター型があるプロパティの基本プロパティを作成します。

    このプロパティはプロパティの直後に配置し、<プロパティ名>**_Base** という名前を付けます。 たとえば、Win32_PerfRawData_PerfDisk_LogicalDisk クラスの平均プロパティ AvgDiskBytesPerRead には、サンプル数をカウントするために AvgDiskBytesPerRead_Base という基本プロパティが必要です。 使用するカウンター型に基本プロパティが必要かどうかを判断するには、「WMI パフォーマンス カウンターの種類」で、名前または 10 進値でカウンター型を見つけてください。

  9. プロバイダーがパフォーマンス要件を満たしていることを確認します。

インスタンス プロバイダーを High-Performance プロバイダーに変換する