Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os provedores modernos de dados de desempenho utilizam um manifesto para definir os dados dos contadores e utilizam as APIs dos provedores de contadores de desempenho para gerir os dados no contexto do provedor. Os provedores implementados usando um manifesto e APIs de contador de desempenho do provedor são frequentemente chamados de provedores V2. O Windows suporta fornecedores V2 de modo de utilizador no Windows Vista ou posterior e fornecedores de modo kernel V2 no Windows 7 ou posterior.
Esta página descreve os provedores V2 de modo de usuário. Para obter informações sobre provedores V2 em modo kernel, consulte Monitorização de Desempenho em Modo Kernel.
No tempo de execução, os provedores V2 funcionam da seguinte maneira:
- O processo do provedor regista-se no sistema de contador de desempenho do Windows chamando PerfStartProvider e PerfSetCounterSetInfo. O provedor opcionalmente fornece uma função de retorno de chamada que será notificada sobre as solicitações do consumidor.
- O processo do provedor adiciona ou remove instâncias conforme apropriado usando PerfCreateInstance e PerfDeleteInstance. O provedor atualiza os valores do contador quando eles são alterados usando APIs PerfSet***.
- Um consumidor faz uma solicitação de dados de um contraconjunto. O sistema verifica se o chamador tem permissões para coletar os dados. Em seguida, o sistema usa um thread de trabalho em execução no processo do provedor para lidar com a solicitação, invocando a função de retorno de chamada do provedor, se apropriado. O thread de trabalho copia os dados coletados em um buffer gerenciado pelo sistema e, em seguida, o sistema retorna os dados ao consumidor.
Etapas para criar um provedor
Escreva um manifesto que defina os dados do contador que o seu provedor fornecerá. Para obter detalhes sobre como escrever o manifesto, consulte Esquema de Contadores de Desempenho.
Use CTRPP para gerar o código de modelo que você inclui em seu provedor. O código do modelo inclui as estruturas que definem os conjuntos de contadores, as funções CounterInitialize e CounterCleanup, e as cadeias de caracteres de recurso.
O seu provedor deve chamar as funções CounterInitialize e CounterCleanup. A função CounterInitialize chama a função PerfStartProvider para registar o provedor e também chama a função PerfSetCounterSetInfo para inicializar o conjunto de contadores. O CounterCleanup chama a função PerfStopProvider para remover o registo do provedor.
Inclua o código do template da etapa anterior no seu projeto e complete o seu fornecedor.
Para concluir o provedor, precisa-se chamar a função PerfCreateInstance para cada instância do conjunto de contadores fornecido.
Para definir os valores do contador, chame uma das seguintes funções:
O benefício de usar PerfSetCounterRefValue é que não é necessário fazer uma chamada de função para definir ou atualizar o valor do contador; basta atualizar a variável local do contador (a variável para a qual a referência aponta) e os contadores de desempenho usam o ponteiro para aceder ao valor do contador.
Se você não usar PerfSetCounterRefValue, poderá usar as seguintes funções para incrementar ou diminuir o valor do contador:
- PerfDecrementULongCounterValue
- PerfDecrementULongLongCounterValue
- PerfIncrementULongCounterValue
- PerfIncrementULongLongCounterValue
Antes que o provedor saia, ele deve chamar o PerfDeleteInstance para cada instância de conjunto de contadores que ele criou.
Se você especificou o atributo de retorno de chamada no elementoprovedor deem seu manifesto ou usou o argumento -NotificationCallback ao chamar CTRPP, deverá implementar a função ControlCallback callback. Você passa a função de retorno de chamada para CounterInitialize.
Se usou o -MemoryRoutines ao chamar CTRPP, deverá implementar as funções de retorno de chamada AllocateMemory e FreeMemory. Você passa as funções de retorno de chamada para CounterInitialize.
Ao instalar o seu fornecedor, use a ferramenta LodCtr para gravar o nome do ficheiro binário que contém as cadeias de recursos localizadas e os IDs de recursos no registo. Para obter detalhes sobre como usar o LodCtr, consulte Esquema de contadores de desempenho.
Ao desinstalar o provedor, use a ferramenta UnlodCtr para remover as informações do provedor do registro.