Función PerfCreateInstance (perflib.h)

Crea una instancia del conjunto de contadores especificado. Los proveedores usan esta función.

Sintaxis

PPERF_COUNTERSET_INSTANCE PerfCreateInstance(
  [in] HANDLE  ProviderHandle,
  [in] LPCGUID CounterSetGuid,
  [in] PCWSTR  Name,
  [in] ULONG   Id
);

Parámetros

[in] ProviderHandle

Identificador del proveedor. Use la variable handle que la herramienta CTRPP generó automáticamente. Para el nombre de la variable, vea el atributo symbol del elemento provider .

Windows Vista: La función PerfStartProvider devuelve el identificador.

[in] CounterSetGuid

GUID que identifica de forma única el conjunto de contadores del que desea crear una instancia de . Se trata del mismo GUID especificado en el atributo guid del elemento counterSet . Use la variable GUID que la herramienta CTRPP generó automáticamente. Para el nombre de la variable, vea el atributo symbol del elemento counterSet .

Windows Vista: La variable GUID no está disponible.

[in] Name

Cadena Unicode terminada en NULL que contiene un nombre único para esta instancia.

[in] Id

Identificador único para esta instancia del conjunto de contadores. El identificador puede ser un número de serie que se incrementa para cada nueva instancia.

Valor devuelto

Estructura PERF_COUNTERSET_INSTANCE que contiene la instancia del conjunto de contadores o NULL si PERFLIB no pudo crear la instancia. Almacene en caché este puntero para usarlo en llamadas posteriores en lugar de llamar a PerfQueryInstance para recuperar el puntero a la instancia.

Esta función devuelve NULL si se produjo un error. Para determinar el error que se produjo, llame a GetLastError.

Comentarios

El proveedor determina cuándo crea una instancia. Si los datos del contador son más estáticos, el proveedor puede crear una instancia en el momento de la inicialización. Por ejemplo, el número de procesadores de un equipo se consideraría estático, por lo que un proveedor que proporciona datos de contador para los procesadores podría crear una instancia para cada procesador del equipo en el momento de la inicialización. En el caso de los contadores que son más dinámicos, como los contadores de disco o proceso, los proveedores crearían las nuevas instancias en respuesta a un nuevo dispositivo USB que se va a agregar o a un nuevo proceso que se va a crear.

Cuando el proveedor llama a esta función, PERFLIB asigna memoria local para la nueva instancia y compila el bloque de instancia. PERFLIB elimina la memoria cuando el proveedor llama a la función PerfDeleteInstance .

La instancia contiene los datos de contador sin procesar. Los proveedores usan las tres funciones siguientes para actualizar los datos de contador sin procesar:

Normalmente, el proveedor mantiene actualizados los datos del contador en todo momento. Como alternativa, el proveedor puede implementar la función ControlCallback y usar el código de solicitud de PERF_COLLECT_START para desencadenar las actualizaciones.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado perflib.h
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

PerfDeleteInstance

PerfQueryInstance