Compartir a través de


__lwpins32, __lwpins64

Se requiere Visual Studio 2010 SP1.

Específicos de Microsoft

Genera la instrucción lwpins de generación de perfiles ligera (LWP) para insertar un registro del evento de usuario en el búfer de anillo LWP activo.

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

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

Parámetros

  • [in] data2
    Un parámetro de 32 o 64 bits que se escribirá en el campo Data2 de un registro de búfer de anillo LWP.

  • [in] data1
    Un parámetro de 32 bits que se escribirá en el campo Data1 de un registro de búfer de anillo LWP.

  • [in] flags
    Un parámetro de 32 bits del que los 16 bits inferiores se escribirán en el campo Flags de un registro de búfer de anillo LWP.

Valor devuelto

Un carácter sin signo que tiene el valor 1 si el búfer de anillo estuviera completo, 0 de lo contrario.

Requisitos

Intrínseco

Arquitectura

__llwpins32

LWP

__llwpins64

LWP, solo X64

Archivo de encabezado <intrin.h>

Comentarios

Estas características intrínseca se pueden utilizar para grabar eventos importantes con EventId 255 en el búfer de anillo de generación de perfiles ligera. A diferencia de lwpval, la instrucción lwpins escribe en el búfer cada vez que se ejecuta. Para obtener más información, vea __lwpval32.

Cuando la generación de perfiles ligera está habilitada, estas características intrínsecas escriben inmediatamente un registro en la siguiente ranura disponible del búfer de anillo LWP activo y devuelven 0. Si el búfer de anillo está lleno, el nuevo registro sobrescribe el último registro del búfer y el intrínseco devuelve 1. Cuando la generación de perfiles ligera no está habilitada, estas características intrínsecas devuelven 0 de forma silenciosa.

Tanto __lwpins32 como __lwpins64 escriben el valor de data2 en el campo Data2 del registro de búfer de anillo (23-16 bytes), data1 en el campo Data1 (7-4 bytes) y flags en el campo Flags (3-2 bytes). Observe que flags debe ser constante y truncarse a 16 bits. __lwpins32 intrínseco establece los bytes 23-20 del registro de búfer de anillo en cero.

La instrucción lwpins forma parte de la familia LWP de instrucciones. Las instrucciones LWP requieren la compatibilidad del hardware y del sistema operativo. Para determinar la compatibilidad del hardware para LWP, llame a __cpuid intrínseco con InfoType = 0x80000001 y compruebe el bit 15 de CPUInfo [2] (ECX). Este bit es 1 cuando se admite LWP, de lo contrario es 0. Cuando sepa si el procesador admite LWP, llame a __cpuid intrínseco con InfoType = 0x8000001C y compruebe el bit 0 de CPUInfo[0](EAX). Este bit es 1 si el sistema operativo además admite LWP, de lo contrario es 0. Esta prueba __cpuid también devuelve información adicional acerca de la implementación LWP. Para obtener más información, vea __llwpcb y la publicación sobre la especificación de generación de perfiles ligera de AMD (publicación número 43724).

Para obtener un ejemplo, vea __llwpcb.

Vea también

Otros recursos

__llwpcb

__lwpval32, __lwpval64

__slwpcb

Intrínsecos LWP agregados para Visual Studio 2010 SP1

Historial de cambios

Fecha

Historial

Motivo

Marzo de 2011

Se agrega este contenido.

Cambio de características de SP1.