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 sob a chave de Serviços, e a chave de Desempenho deve conter os valores Biblioteca, Abrir, Coletare Fechar. Em certos casos, o componente pode precisar configurar valores adicionais do Registro.
Metadados
MetadataGlobal
e MetadataCostly
são consultas somente de metadados geradas pelo Windows 10 20H1 e posterior. Essas ferramentas permitem que um usuário obtenha metadados (informações do objeto e informações do contador) sem realizar uma coleta de dados potencialmente custosa. Espera-se que a consulta somente metadados retorne os mesmos resultados que a consulta Global
ou Costly
correspondente, exceto que NumInstances
deve ser definida como PERF_METADATA_MULTIPLE_INSTANCES
(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 blocos PERF_INSTANCE_DEFINITION
.
Se a sua DLL de desempenho suportar os tipos de consulta MetadataGlobal
e MetadataCostly
, deve indicar isso ao adicionar um valor REG_DWORD
Collect Supports Metadata
à chave Performance
e definir o valor como 1. Se Collect Supports Metadata
estiver ausente ou definido como 0, uma consulta somente de metadados retornará para uma consulta Global
ou Costly
.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\application-name
\Performance
Collect Supports Metadata = 1
Ligação
A função OpenPerformanceData da DLL de desempenho recebe como entrada um argumento de cadeia de caracteres. Para fornecer uma cadeia de caracteres de entrada para a sua função aberta, inclua uma chave de Vinculação sob a sua chave de Serviços . A chave de ligação contém um valor de exportação . 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 do Export é REG_MULTI_SZ.
Se Export não estiver definido (Export for opcional), o sistema passará NULL para a sua função OpenPerformanceData.
Normalmente, se mais do que uma aplicação partilha a mesma DLL de desempenho, cada aplicação inclui uma chave de ligação Linkage e um valor de exportação Export para fornecer contexto sobre qual aplicação está a chamar a DLL.
A seguir são mostradas as entradas do Registo:
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
Timeout
Por padrão, as funções OpenPerformanceData e CollectPerformanceData da DLL de desempenho devem retornar dentro de 10.000 milissegundos. Se não, o sistema não usa os dados que a DLL retorna. A aplicação pode aumentar ou diminuir o valor do tempo limite especificando um valor de registo Open Timeout ou Collect Timeout na sua chave de Performance, como mostrado no exemplo seguinte.
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 para alguns aplicativos (aqueles que retornam contadores usando a funçãoDeviceIoControl), é necessário usar a função CreateFile para abrir o dispositivo associado ao aplicativo. Nesse caso, o nome especificado no CreateFile também deve ser instalado no nó Dispositivos DOS do registo, como demonstrado aqui:
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Control
\Session Manager
\DOS Devices