Compartilhar via


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

MetadataGlobale 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