次の方法で共有


パフォーマンス データ形式

RegQueryValueEx 関数によって取得されるデータの形式は、固定長ヘッダー構造 (PERF_DATA_BLOCK) で始まります。 PERF_DATA_BLOCK構造では、システムとパフォーマンス データについて説明します。 PERF_DATA_BLOCK構造体の後に可変長オブジェクト データ項目の可変長が続きます。 各オブジェクト項目のヘッダーには、リスト内の次のオブジェクト項目のオフセットが含まれています。 次の図は、基本的なパフォーマンス データ構造を示しています。

パフォーマンス データ構造

オブジェクト データ項目には 2 つの形式があります。1 つは複数のインスタンスをサポートし、もう 1 つは複数のインスタンスをサポートしていません。

各オブジェクト データ項目ブロックには、オブジェクトのパフォーマンス データを記述する PERF_OBJECT_TYPE 構造が含まれています。 PERF_OBJECT_TYPE構造体の後に、オブジェクトに対して定義されているカウンターごとに 1 つずつ、PERF_COUNTER_DEFINITION構造体の一覧が続きます。 インスタンスが 1 つだけのオブジェクトの場合、 PERF_COUNTER_DEFINITION 構造体の一覧の後に 1 つの PERF_COUNTER_BLOCK 構造体が続き、カウンター データが続きます。 各 PERF_COUNTER_DEFINITION 構造体には、 PERF_COUNTER_BLOCK 構造体の先頭から対応するカウンター データへのオフセットが含まれます。 次の図は、複数のインスタンスをサポートしないパフォーマンス オブジェクトの構造を示しています。

複数のインスタンスをサポートしないパフォーマンス オブジェクトの構造

複数のインスタンスをサポートするオブジェクト型の場合、 PERF_COUNTER_DEFINITION 構造体の一覧の後にインスタンス情報ブロックの一覧が続きます (インスタンスごとに 1 つ)。 各インスタンス情報ブロックには、 PERF_INSTANCE_DEFINITION 構造体、インスタンスの名前、 およびPERF_COUNTER_BLOCK 構造体が含まれます。 次の図は、2 つのインスタンスをサポートするパフォーマンス オブジェクトの構造を示しています。

2 つのインスタンスをサポートするパフォーマンス オブジェクトの構造

オフセットを使用する例については、「 オブジェクト、インスタンス、およびカウンター名の表示」を参照してください。