Compartir a través de


__lwpval32, __lwpval64

Se requiere Visual Studio 2010 SP1.

Específicos de Microsoft

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

void __lwpval32(
   unsigned int data2,
   unsigned int data1,
   unsigned int flags
);

void __lwpval64(
   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

Ninguno.

Requisitos

Intrínseco

Arquitectura

__lwpval32

LWP

__lwpval64

LWP, solo X64

Archivo de encabezado <intrin.h>

Comentarios

Estas características intrínseca se pueden utilizar para grabar ejemplos de valores con EventID 1 en el búfer de anillo de generación de perfiles ligera. A diferencia de lwpins, la instrucción lwpval escribe solo en el búfer que se ejecuta todo kel tiempo lwpval, donde k-1 es el valor del campo EventInterval1 de LWPCB. Para obtener más información, vea __lwpins32.

Cuando se escribe un registro, va en la siguiente ranura disponible del búfer de anillo LWP activo. Si el búfer de anillo está completo, el nuevo registro sobrescribe el último registro en el búfer. Cuando la generación de perfiles ligera no está habilitada, o está habilitada pero el evento ProgrammedValueSample no está habilitado, estas características intrínsecas no tienen ningún efecto en el búfer de anillo.

Tanto __lwpval32 como __lwpval64 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. __lwpval32 intrínseco establece los bytes 23-20 del registro de búfer de anillo en cero.

La instrucción lwpval forma parte de la familia LWP de instrucciones. Las instrucciones LWP requieren hardware y compatibilidad 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. Si el sistema operativo no admite LWP, compruebe el bit 1 de CPUInfo [0] (EAX) que será 1 si la instrucción LWPVAL está disponible. 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

__lwpins32, __lwpins64

__llwpcb

__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.