次の方法で共有


__lwpins32, __lwpins64

更新 : 2011 年 3 月

Visual Studio 2010 SP1 が必要です。

Microsoft 固有の仕様 →

Lightweight Profiling (LWP) 命令 lwpins を生成して、ユーザー イベント レコードをアクティブな LWP リング バッファーに挿入します。

unsigned char __lwpins32(
   unsigned int data2,
   unsigned int data1,
   unsigned int flags
);

unsigned char __lwpins64(
   unsigned __int64 data2,
   unsigned int data1,
   unsigned int flags
);

パラメーター

  • [入力] data2
    LWP リング バッファー レコードの Data2 フィールドに書き込まれる 32 または 64 ビットのパラメーター。

  • [入力] data1
    LWP リング バッファー レコードの Data1 フィールドに書き込まれる 32 ビットのパラメーター。

  • [入力] flags
    下位 16 ビットが LWP リング バッファー レコードの Flags フィールドに書き込まれる 32 ビットのパラメーター。

戻り値

リング バッファーがいっぱいの場合は値 1 を持ち、そうでない場合は値 0 を持つ符号なしの文字。

必要条件

組み込み

アーキテクチャ

__llwpins32

LWP

__llwpins64

LWP、X64 のみ

ヘッダー ファイル <intrin.h>

解説

これらの組み込みを使用すると、EventId 255 の重要なイベントを Lightweight Profiling リング バッファーに記録できます。 lwpval とは異なり、lwpins 命令を実行するたびに、バッファーへの書き込みが行われます。 詳細については、「__lwpval32」を参照してください。

Lightweight Profiling が有効になっている場合、これらの組み込みはアクティブな LWP リング バッファーの次の空きスロットにレコードを即座に書き込み、0 を返します。 リング バッファーがいっぱいの場合、新しいレコードによってバッファー内の最後のレコードが上書きされ、組み込みは 1 を返します。 Lightweight Profiling が有効になっていない場合、これらの組み込みは何も行わずに 0 を返します。

__lwpins32__lwpins64 はどちらも、data2 の値をリング バッファー レコード (バイト 23-16) の Data2 フィールドに書き込み、data1 を Data1 フィールド (バイト 7-4) に書き込み、flags の値を Flags フィールド (バイト 3-2) に書き込みます。 flags は一定である必要があり、16 ビットに切り捨てられます。 __lwpins32 組み込みでは、リング バッファー レコードのバイト 23-20 をゼロに設定します。

lwpins 命令は、LWP ファミリの命令の一部です。 LWP 命令を使用するには、ハードウェア サポートとオペレーティング システム サポートの両方が必要です。 LWP に対するハードウェア サポートを確認するには、InfoType を 0x80000001 にして __cpuid 組み込みを呼び出し、CPUInfo[2] (ECX) のビット 15 をチェックします。 このビットは、LWP がサポートされている場合は 1 になり、サポートされていない場合は 0 になります。 LWP がプロセッサでサポートされていることを確認したら、InfoType を 0x8000001C にして __cpuid 組み込みを呼び出し、CPUInfo[0] (EAX) のビット 0 をチェックします。 このビットは、オペレーティング システムでも LWP がサポートされている場合は 1 になり、サポートされていない場合は 0 になります。 この __cpuid テストでは、LWP の実装に関する追加情報も返されます。 詳細については、__llwpcb および AMD の「Lightweight Profiling Specification (Lightweight Profiling の仕様)」(公開番号 43724) を参照してください。

例については、「__llwpcb」を参照してください。

参照

その他の技術情報

__llwpcb

__lwpval32, __lwpval64

__slwpcb

Visual Studio 2010 SP1 用に追加された LWP 組み込み

履歴の変更

日付

履歴

理由

2011 年 3 月

このコンテンツを追加。

SP1 機能変更