PerfSetCounterRefValue 関数 (perflib.h)
値が実際のデータへのポインターであるカウンターの値を更新します。 プロバイダーはこの関数を使用します。
構文
ULONG PerfSetCounterRefValue(
[in] HANDLE Provider,
[in] PPERF_COUNTERSET_INSTANCE Instance,
[in] ULONG CounterId,
[in] PVOID Address
);
パラメーター
[in] Provider
プロバイダーのハンドル。 CTRPP ツールによって生成されたハンドル変数を使用します。 変数の名前については、provider 要素の symbol 属性を参照してください。
Windows Vista: PerfStartProvider 関数はハンドルを返します。
[in] Instance
カウンター セット インスタンスを含む PERF_COUNTERSET_INSTANCE 構造体。 PerfCreateInstance 関数は、このポインターを返します。
[in] CounterId
インスタンス ブロックで更新するカウンターを一意に識別する識別子。 識別子は counter 要素の id 属性で定義され、インスタンス ブロック内のPERF_COUNTER_INFO構造体の 1 つの CounterId メンバーと一致する必要があります。 CTRPP ツールによって生成されたカウンター ID 定数を使用します。 定数の名前については、counter 要素の symbol 属性を参照してください。
Windows Vista: カウンター ID 定数は使用できません。
[in] Address
実際のカウンター データへのポインター。
NULL の場合、コンシューマーはERROR_NO_DATAを受け取ります。
カウンター データが参照によってアクセスされることを示すには、マニフェストのカウンター宣言に、name 属性が "reference" に設定されている counterAttribute 要素を含める必要があります。
戻り値
関数が成功すると、ERROR_SUCCESSが返されます。
関数が失敗した場合、戻り値は システム エラー コードです。
注釈
これは、生カウンター データへの参照を指定するための便利な関数です。 生カウンター データへの参照を自分で更新するには、PERF_COUNTER_INFO構造体の Offset メンバーを使用して、特定のカウンターのカウンター値にアクセスします。 Attrib メンバーには、PERF_ATTRIB_BY_REFERENCE フラグを含める必要があります。 PERF_COUNTERSET_INSTANCE構造体ブロックには、1 つ以上のカウンター情報構造体が含まれています。
カウンターの種類に応じて、ポインターは 4 バイトまたは 8 バイトの符号なし整数を参照する必要があります。 カウンター データを収集する場合、PERFLIB はポインターを逆参照し、実際のデータを返します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | perflib.h |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |