Criando outras entradas do Registro
Conforme descrito em Criando a chave de desempenho do aplicativo, um componente que fornece dados de contador de desempenho deve ter uma chave de desempenho na chave Serviços e a chave de desempenho deve conter os valores Biblioteca, Abrir, Coletar e Fechar . Em determinados casos, seu componente pode precisar configurar valores adicionais do Registro.
Metadados
MetadataGlobal
e MetadataCostly
são consultas somente de metadados geradas por Windows 10 20H1 e posteriores. Eles permitem que um usuário obtenha metadados (informações de objeto e informações de contador) sem executar uma coleta de dados potencialmente cara. Espera-se que a consulta somente de metadados retorne os mesmos resultados que a consulta ou Costly
correspondenteGlobal
, exceto que NumInstances
deve ser definida PERF_METADATA_MULTIPLE_INSTANCES
como (para um objeto de várias instâncias) ou PERF_METADATA_NO_INSTANCES
(para um objeto de instância única) e o resultado deve omitir todos os PERF_INSTANCE_DEFINITION
blocos.
Se a DLL de desempenho der suporte MetadataGlobal
a tipos de consulta e MetadataCostly
, ela deverá indicar isso adicionando um REG_DWORD
valor Collect Supports Metadata
à chave Performance
e definindo o valor como 1. Se Collect Supports Metadata
estiver ausente ou definido como 0, uma consulta somente de metadados retornará a uma Global
consulta ou Costly
.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\application-name
\Performance
Collect Supports Metadata = 1
Vinculação
A função OpenPerformanceData da DLL de desempenho usa um argumento de cadeia de caracteres como entrada. Para fornecer uma cadeia de caracteres de entrada para sua função aberta, inclua uma chave De vinculação na chave de Serviços . A chave Linkage contém um valor exportar . Defina os dados de valor para Exportar para a cadeia de caracteres de entrada que você deseja passar para sua função aberta. O tipo de dados exportar é REG_MULTI_SZ.
Se Exportar não estiver definido (Exportar é opcional), o sistema passará NULL para sua função OpenPerformanceData .
Normalmente, se mais de um aplicativo compartilhar a mesma DLL de desempenho, cada aplicativo incluirá uma chave linkage e o valor exportar para fornecer contexto sobre qual aplicativo está chamando a DLL.
O seguinte mostra as entradas do 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
Tempo limite
Por padrão, as funções OpenPerformanceData e CollectPerformanceData da DLL de desempenho devem retornar dentro de 10.000 milissegundos. Caso contrário, o sistema não usará os dados que a DLL retorna. O aplicativo pode aumentar ou diminuir o valor de tempo limite especificando um valor de registro Open Timeout ou Collect Timeout em sua chave de desempenho , conforme mostrado no exemplo a seguir.
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 obter os dados de desempenho de alguns aplicativos (aqueles que retornam contadores usando a função DeviceIoControl ), é necessário usar a função CreateFile para abrir o dispositivo associado ao aplicativo. Nesse caso, o nome especificado em CreateFile também deve ser instalado no nó DOS Dispositivos do Registro, conforme mostrado aqui:
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\Session Manager
\DOS Devices