Crear otras entradas del Registro
Como se describe en Creación de la clave de rendimiento de la aplicación, un componente que proporciona datos del contador de rendimiento debe tener una clave de rendimiento en la clave de servicios y la clave de rendimiento debe contener valores Library, Open, Collect y Close . En algunos casos, es posible que el componente tenga que configurar valores adicionales del Registro.
Metadatos
MetadataGlobal
y MetadataCostly
son consultas de solo metadatos generadas por Windows 10 20H1 y versiones posteriores. Permiten a un usuario obtener metadatos (información de objeto e información de contador) sin realizar una recopilación de datos potencialmente costosa. Se espera que la consulta de solo metadatos devuelva los mismos resultados que la consulta o Costly
correspondienteGlobal
, excepto que NumInstances
se debe establecer PERF_METADATA_MULTIPLE_INSTANCES
en (para un objeto de instancia múltiple) o PERF_METADATA_NO_INSTANCES
(para un objeto de instancia única) y el resultado debe omitir todos los PERF_INSTANCE_DEFINITION
bloques.
Si el archivo DLL de rendimiento admite MetadataGlobal
y MetadataCostly
tipos de consulta, debe indicarlo agregando un REG_DWORD
valor Collect Supports Metadata
a su Performance
clave y estableciendo el valor en 1. Si Collect Supports Metadata
no está presente o se establece en 0, una consulta de solo metadatos se revertirá a una Global
consulta o Costly
.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\application-name
\Performance
Collect Supports Metadata = 1
Vinculación
La función OpenPerformanceData de la DLL de rendimiento toma un argumento de cadena como entrada. Para proporcionar una cadena de entrada a la función abierta, incluya una clave de vinculación en la clave de servicios . La clave de vinculación contiene un valor export . Establezca los datos de valor de Export en la cadena de entrada que desea pasar a la función abierta. El tipo de datos de Export es REG_MULTI_SZ.
Si no se define Export (Export es opcional), el sistema pasa NULL a la función OpenPerformanceData .
Normalmente, si más de una aplicación comparte el mismo archivo DLL de rendimiento, cada aplicación incluye una clave de vinculación y un valor de exportación para proporcionar contexto en el que la aplicación llama al archivo DLL.
A continuación se muestran las entradas del Registro:
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\application-name-1
\Linkage
Export = app-1 context strings
\Performance
Library = perfctrs.dll
\application-name-2
\Linkage
Export = app-2 context strings
\Performance
Library = perfctrs.dll
Tiempo de espera
De forma predeterminada, las funciones OpenPerformanceData y CollectPerformanceData del archivo DLL de rendimiento deben devolverse en 10 000 milisegundos. Si no es así, el sistema no usa los datos que devuelve el archivo DLL. La aplicación puede aumentar o disminuir el valor de tiempo de espera especificando un valor de Registro De tiempo de espera abierto o Recopilación de tiempo de espera en su clave de rendimiento , tal como se muestra en el ejemplo siguiente.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\application-name
\Performance
Open Timeout = Timeout value for your open function, in milliseconds
Collect Timeout = Timeout value for your collect function, in milliseconds
Dispositivos DOS
Para obtener los datos de rendimiento de algunas aplicaciones (aquellos que devuelven contadores mediante la función DeviceIoControl ), es necesario usar la función CreateFile para abrir el dispositivo asociado a la aplicación. En este caso, el nombre especificado en CreateFile también debe instalarse en el nodo Dos Devices del Registro, como se muestra aquí:
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\Session Manager
\DOS Devices