PerfAddCounters 関数 (perflib.h)
指定したクエリにパフォーマンス カウンターの仕様を追加します。
構文
ULONG PerfAddCounters(
[in] HANDLE hQuery,
[in, out] PPERF_COUNTER_IDENTIFIER pCounters,
DWORD cbCounters
);
パラメーター
[in] hQuery
パフォーマンス カウンターの仕様を追加するクエリへのハンドル。
[in, out] pCounters
追加するパフォーマンス カウンター仕様へのポインター。
cbCounters
pCounters パラメーターが指定するバッファーのサイズ (バイト単位)。
戻り値
関数が成功すると、ERROR_SUCCESSが返されます。
関数が失敗した場合、戻り値は システム エラー コードです。
解説
pCounters パラメーターは、PERF_COUNTER_IDENTIFIER ブロックのシーケンスを指している必要があります。 各 PERF_COUNTER_IDENTIFIER ブロックは 、PERF_COUNTER_IDENTIFIER 構造体で構成され、必要に応じて null で終わる UTF-16LE インスタンス名文字列が続き、その後にブロックのサイズが 8 バイトの倍数になるパディングが続きます。
PERF_COUNTER_IDENTIFIER ブロックごとに、次の手順 を 実行します。
- PERF_COUNTER_IDENTIFIER構造体の CounterSetGuid メンバーを、クエリ対象のカウンター セットの識別子に設定します。
- PERF_COUNTER_IDENTIFIER構造体の Status メンバーを 0 に設定します。
- PERF_COUNTER_IDENTIFIER構造体の Size メンバーを、PERF_COUNTER_IDENTIFIER構造体、インスタンス名、パディングなど、PERF_COUNTER_IDENTIFIER ブロックのサイズ (バイト単位) に設定します。 Size の値は 8 の倍数である必要があります。
- PERF_COUNTER_IDENTIFIER構造体の CounterId メンバーを、クエリによって返されるカウンターの識別子に設定します。 すべてのカウンターを返すには、 CounterId をPERF_WILDCARD_COUNTER に設定します。
- PERF_COUNTER_IDENTIFIER構造体の InstanceId メンバーを、クエリによって返されるインスタンスの識別子に設定します。 インスタンス識別子に基づいてフィルター処理を行う必要がない場合は、 InstanceId を PERF_WILDCARD_COUNTER に設定します。
- PERF_COUNTER_IDENTIFIER構造体の Index メンバーを 0 に設定します。
- PERF_COUNTER_IDENTIFIER構造体の予約済みメンバーを 0 に設定します。
- PERF_COUNTER_IDENTIFIER構造体の直後にインスタンス名を含めます。
- カウンター セットが単一インスタンスの場合は、インスタンス名を設定しないでください。 この場合、 PERF_COUNTER_IDENTIFIER 構造体の Size メンバーの値は 、PERF_COUNTER_IDENTIFIER 構造体のサイズである必要があります。
- カウンター セットが複数インスタンスの場合は、インスタンス名を設定する必要があります。 インスタンス名に基づいてパフォーマンス カウンターの仕様をフィルター処理しない場合は、インスタンス名として PERF_WILDCARD_INSTANCE を使用します。
要件
サポートされている最小のクライアント | Windows 10、バージョン 1607 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2016 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | perflib.h |
Library | AdvAPI32.lib |
[DLL] | AdvAPI32.dll |