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

こちらもご覧ください

PerfSetULongCounterValue

PerfSetULongLongCounterValue