PERF_INSTANCE_DEFINITION 構造体 (winperf.h)
パフォーマンス オブジェクトのインスタンスについて説明します。
構文
typedef struct _PERF_INSTANCE_DEFINITION {
DWORD ByteLength;
DWORD ParentObjectTitleIndex;
DWORD ParentObjectInstance;
LONG UniqueID;
DWORD NameOffset;
DWORD NameLength;
} PERF_INSTANCE_DEFINITION, *PPERF_INSTANCE_DEFINITION;
メンバー
ByteLength
この構造体のサイズ (後に続くインスタンス名を含む) (バイト単位)。 この値は 8 バイトの倍数である必要があります。
ParentObjectTitleIndex
タイトル データベース内の親オブジェクトの名前のインデックス。 たとえば、オブジェクトがスレッドの場合、親オブジェクトはプロセスであるか、オブジェクトが論理ドライブの場合、親は物理ドライブです。
ParentObjectInstance
このインスタンスに関連付けられている親オブジェクト内のインスタンスの位置。 位置は 0 から始まります。
UniqueID
名前を使用してインスタンスを識別する代わりに、インスタンスを識別するために使用できる一意識別子。 カウンター インスタンスを区別するために一意識別子を使用しない場合は、このメンバーを PERF_NO_UNIQUE_ID に設定します。
NameOffset
この構造体の先頭からこのインスタンスの Unicode 名へのオフセット。
NameLength
null 終端記号を含むインスタンス名の長さ (バイト単位)。 インスタンスに名前がない場合、このメンバーは 0 です。
ByteLength が 8 バイトの境界に確実に配置されるように、インスタンス名に追加したパディングを長さに含めないでください。
注釈
PERF_OBJECT_TYPE の NumInstancesメンバーが 0 より大きい場合、オブジェクトには インスタンスが含まれます。 オブジェクトの最初のインスタンスを検索するには、PERF_OBJECT_TYPE の DefinitionLength メンバーを使用します。 詳細については、「 パフォーマンス データ形式」を参照してください。
コンシューマーは、親インスタンス名 (指定されている場合) を使用して、表示に使用される完全なインスタンス名を作成する必要があります。 規則では、名前を親/子として形成します。
プロバイダーは一意のインスタンス名を使用する必要があります。 そうでない場合、コンシューマーはパフォーマンス値を計算して表示するのが困難になります。これは、現在のインスタンスが以前にクエリされたのと同じインスタンスを参照しているかどうかを確認できないためです (インスタンスが送受信される可能性があります)。
プロバイダーは、 ByteLength が 8 バイト境界に確実に配置されるように、インスタンス名に十分な領域を割り当てる必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | winperf.h (Windows.h を含む) |