__lwpins32, __lwpins64

업데이트: 2011년 3월

Visual Studio 2010 SP1이 필요합니다.

Microsoft 전용

LWP(lightweight profiling) 명령 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
);

매개 변수

  • [in] data2
    LWP 링 버퍼 레코드의 Data2 필드에 기록할 32 또는 64비트 매개 변수입니다.

  • [in] data1
    LWP 링 버퍼 레코드의 Data1 필드에 기록할 32비트 매개 변수입니다.

  • [in] flags
    LWP 링 버퍼 레코드의 Flags 필드에 기록될 하위 16비트의 32비트 매개 변수입니다.

반환 값

링 버퍼가 가득 찬 경우 값 1을 가진 부호 없는 문자, 그렇지 않으면 0입니다.

요구 사항

내장

아키텍처

__llwpins32

LWP

__llwpins64

LWP, X64 전용

헤더 파일 <intrin.h>

설명

이러한 intrinsics는 간단한 프로파일링 링 버퍼에서 EventId 255를 사용하여 중요한 이벤트를 기록하는 데 사용할 수 있습니다. lwpval과 달리 lwpins 명령은 실행될 때마다 버퍼에 기록됩니다. 자세한 내용은 __lwpval32를 참조하십시오.

간단한 프로파일링이 사용되면 이러한 intrinsics는 즉시 레코드를 활성 LWP 링 버퍼의 다음 사용할 수 있는 슬롯에 쓰고 0을 반환합니다. 링 버퍼가 가득 찬 경우 새 레코드는 버퍼의 마지막 레코드를 덮어쓰고 intrinsic은 1을 반환합니다. 간단한 프로파일링이 활성화되지 않으면 이러한 intrinsic은 자동으로 0을 반환합니다.

__lwpins32__lwpins64는 data2의 값을 링 버퍼 레코드(바이트 23-16)의 Data2 필드에 기록하고, data1은 Data1 필드(바이트 7-4)에 기록하며 flags는 Flags 필드 (바이트 3-2)에 기록합니다. flags는 상수가 되어야 하며 16비트로 잘립니다. __lwpins32 intrinsic은 링 버퍼 레코드의 바이트 23-20을 0으로 설정합니다.

lwpins 명령은 LWP 명령군의 일부입니다. LWP 명령을 사용하려면 하드웨어 및 운영 체제 지원이 필요합니다. LWP에 대한 하드웨어 지원을 확인하려면 InfoType = 0x80000001을 사용하여 __cpuid intrinsic을 호출하고 CPUInfo[2] (ECX)의 비트 15를 확인합니다. LWP를 지원하는 경우 이 비트는 1이고, 그렇지 않으면 0입니다. LWP가 프로세서에 의해 지원된다는 것을 알게 되면 __cpuid intrinsic을 InfoType = 0x8000001C를 사용하여 호출하고 CPUInfo[0] (EAX)의 비트 0을 확인합니다. 운영 체제에서 LWP를 지원하는 경우 이 비트는 1이고, 그렇지 않으면 0입니다. 이 __cpuid 테스트는 LWP 구현에 대한 추가 정보도 반환합니다. 자세한 내용은 __llwpcb 및 AMD의 "Lightweight Profiling Specification"(발행 번호 43724)을 참조하십시오.

예제를 보려면 __llwpcb을 참조하십시오.

참고 항목

기타 리소스

__llwpcb

__lwpval32, __lwpval64

__slwpcb

Visual Studio 2010 SP1용으로 추가된 LWP 내장 함수

변경 기록

날짜

변경 내용

이유

2011년 3월

이 내용이 추가되었습니다.

SP1 기능 변경