__lwpins32, __lwpins64

È necessario Visual Studio 2010 SP1.

Specifici di Microsoft

Genera l'istruzione della profilatura leggera (LWP) lwpins per inserire un record dell'evento utente nel buffer circolare LWP attivo.

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

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

Parametri

  • [in] data2
    Un parametro a 32 o a 64 bit che verrà scritto nel campo Data2 di un record del buffer circolare LWP.

  • [in] data1
    Parametro a 32 bit che verrà scritto nel campo Data1 di un record del buffer circolare LWP.

  • [in] flags
    Un parametro a 32 i cui 16 bit rimanenti verranno scritti nel campo Flag di un record del buffer circolare LWP.

Valore restituito

Carattere senza segno che dispone del valore 1 se il buffer circolare era completo, 0 in caso contrario.

Requisiti

Intrinseco

Architettura

__llwpins32

LWP

__llwpins64

LWP, solo X64

File di intestazione <intrin.h>

Note

Questi intrinseci possono essere utilizzati per registrare eventi importanti con EventId 255 nel buffer circolare della profilatura leggera. A differenza di lwpval, l'istruzione lwpins scrive nel buffer ogni volta che viene eseguita. Per ulteriori informazioni, vedere __lwpval32.

Quando la profilatura leggera è abilitata, questi intrinseci scrivono immediatamente un record nel successivo slot disponibile del buffer circolare LWP attivo e restituiscono 0. Se il buffer circolare è pieno, il nuovo record sovrascrive l'ultimo record nel buffer e la funzione intrinseca restituisce 1. Quando la profilatura leggero non è abilitata, questi intrinseci restituiscono 0 automaticamente.

Sia __lwpins32 che __lwpins64 scrivono il valore di data2 nel campo Data2 del record del buffer circolare (byte 23-16), data1 nel campo Data1 (byte 7-4) e flags nel campo Flag (byte 3-2). Si noti che flags deve essere costante e verrà troncato a 16 bit. L'intrinseco __lwpins32 imposta byte 23-20 del record del buffer circolare su zero.

L'istruzione lwpins è parte della famiglia LWP di istruzioni. Le istruzioni LWP richiedono sia un supporto hardware che del sistema operativo. Per determinare il supporto hardware per LWP, chiamare __cpuid intrinseco con InfoType = 0x80000001 e il bit di controllo 15 di CPUInfo[2] (ECX). Questo bit è 1 quando LWP è supportato, e 0 in caso contrario. Una volta che si sa che LWP è supportato dal processore, chiamare __cpuid intrinseco con InfoType = 0x8000001C e bit di controllo 0 di CPUInfo[0](EAX). Questo bit è 1 se il sistema operativo supporta anche LWP, in caso contrario è 0. Questo test __cpuid restituisce informazioni aggiuntive sull'implementazione LWP. Vedere __llwpcb e "Lightweight Profiling Specification" di AMD (numero pubblicazione 43724) per ulteriori informazioni.

Per un esempio, vedere __llwpcb.

Vedere anche

Altre risorse

__llwpcb

__lwpval32, __lwpval64

__slwpcb

Oggetti intrinseci LWP aggiunti per Visual Studio 2010 SP1

Cronologia delle modifiche

Data

Cronologia

Motivo

Marzo 2011

È stato aggiunto questo contenuto.

Modifica di funzionalità in SP1.