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.
A ferramenta CTRPP é um pré-processador que analisa e valida o manifesto para seu provedor V2. A ferramenta gera .rc recursos com as cadeias de caracteres necessárias para os consumidores do seu provedor e gera um .h cabeçalho com código que você usa para fornecer os dados do contador. Você deve executar a ferramenta CTRPP durante a compilação do seu provedor. Você deve usar o código gerado como um ponto de partida ao desenvolver seu provedor em vez de tentar gerar esse código por conta própria.
ctrpp -o codeFile -rc rcFile [-legacy] [-MemoryRoutines] [-NotificationCallback] [-prefix prefix] [-ch symFile] [-backcompat] inputFile
Argumentos
| Opção | Descrição |
|---|---|
| arquivo de entrada |
Necessário: Especifica o nome do arquivo (manifesto .man XML) que define seus contadores. |
| -ocodeFile |
Necessário: Especifica o .h nome do arquivo de código a ser gerado pelo CTRPP. Esse arquivo conterá funções auxiliares em linha C/C++ que simplificam a inicialização e a desinicialização do provedor. |
| -rcrcFile |
Necessário: Especifica o nome do .rc (arquivo de recurso) a ser gerado pelo CTRPP. Esse arquivo conterá a tabela de cadeia de caracteres do provedor. |
| -chsymFile | Especifica o nome do arquivo de símbolo opcional .h a ser gerado pelo CTRPP. Esse arquivo conterá símbolos C/C++ para os nomes e GUIDs de cada conjunto de contadores no provedor. |
| -prefixoprefixo | Especifica o prefixo a ser usado para as variáveis e funções definidas no arquivo de cabeçalho gerado. |
| -NotificationCallback | Altera a assinatura padrão da função CounterInitialize para incluir parâmetros para especificar o nome das funções de retorno de chamada ControlCallback, AllocateMemory e FreeMemory . Esse argumento tem o mesmo efeito que incluir o callback atributo no elemento provider . |
| -migraroutputFile | Em vez de gerar .h e .rc arquivos, atualiza o manifesto inputFile para a versão mais recente e o salva em outputFile. Este interruptor não pode ser usado com outros switches. Utilização: CTRPP -migrate NewFile.man OldFile.man |
| -BackCompat |
Preterido: O suporte para provedores de modo kernel foi adicionado no Windows 7. Por padrão, o código gerado pelo CTRPP para provedores de modo kernel será incompatível com versões anteriores do Windows (o driver não será carregado devido a APIs ausentes Pcw*** ). Definido -BackCompat para habilitar a compatibilidade com versões anteriores do Windows. O driver carregará dinamicamente as APIs necessárias e o código gerado desativará silenciosamente o provedor se as APIs não estiverem disponíveis. |
| -MemóriaRotinas |
Preterido: Quando usado com o -Legacy switch, inclui modelos para rotinas de memória no código gerado. Caso contrário, esse argumento terá o mesmo efeito que o -NotificationCallback switch. |
| -Legado |
Preterido: Gera *.h, *.c, *.rce *_r.h arquivos usando os modelos de código do Windows Vista (gera PerfAutoInitialize e PerfAutoCleanup em vez de CounterInitialize e CounterCleanup). Esta opção pode ser usada com -MemoryRoutines e -NotificationCallback, mas não pode ser usada com outras opções. Não utilize os comutadores -o ou -rc com este interruptor. Os arquivos gerados serão nomeados com base no nome do manifesto e serão gravados no diretório que continha o manifesto. Utilização: CTRPP -legacy OldFile.man |
Observações
A ferramenta CTRPP gera um arquivo de .h código, um arquivo de .rc recurso e, opcionalmente, gera um arquivo de .h símbolo.
Usando o arquivo de recurso gerado
A ferramenta CTRPP gerará um .rc arquivo de recurso que contém as cadeias de caracteres localizáveis necessárias para os consumidores dos conjuntos de contadores do provedor.
Importante
Os recursos desse arquivo devem ser incluídos no binário do provedor e o caminho completo para o binário do provedor deve ser registrado durante a instalação do manifesto do provedor. Os consumidores que não conseguirem localizar e carregar os recursos não poderão usar os contadores do seu provedor.
Os recursos de cadeia de caracteres devem ser tratados da seguinte forma:
- O desenvolvedor edita o arquivo de manifesto do provedor (
.man) para definir oapplicationIdentityatributo do provedor como o nome de um binário do provedor (.DLL, .SYS ou .EXE) que conterá os recursos de cadeia de caracteres para o provedor e será instalado como parte do componente do provedor. - A ferramenta CTRPP lê o manifesto do provedor e gera um
.rcarquivo. - A ferramenta RC (compilador de recursos) compila os dados do arquivo gerado
.rcpelo CTRPP para gerar um.resarquivo contendo os recursos binários. Isso pode ser feito compilando diretamente o arquivo gerado.rcpelo CTRPP OU compilando outro.rcarquivo que inclua o arquivo gerado.rcpelo CTRPP por meio de uma#includediretiva. - O vinculador incorpora os dados do arquivo gerado
.respor RC no binário do provedor. - Durante a instalação, o binário do provedor é copiado para o sistema do usuário e o manifesto do provedor é registrado usando a ferramenta lodctr. A ferramenta lodctr converte o
applicationIdentityatributo do manifesto do provedor em um caminho completo e registra o caminho completo para o binário do provedor no registro.- Se o binário do provedor estiver no mesmo diretório que o manifesto, use:
lodctr.exe /m:"C:\full\manifest\path\manifest.man". lodctr combinará o caminho do manifesto especificado com o atributo doapplicationIdentitymanifesto para formar o caminho completo. - Caso contrário, use
lodctr.exe /m:"C:\full\manifest\path\manifest.man" "c:\full\binary\path". lodctr combinará o caminho binário especificado com o atributo doapplicationIdentitymanifesto para formar o caminho completo. - Para fins de diagnóstico, você pode inspecionar o caminho completo gravado verificando o
ApplicationIdentityvalor da chaveHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\_V2Providers\{<ProviderGuid>}do Registro . - Se o binário estiver usando MUI para localização, certifique-se de copiar o arquivo MUI junto com o binário.
- Se o binário do provedor estiver no mesmo diretório que o manifesto, use:
- Durante a coleta do conjunto de contadores, o consumidor usa o caminho completo gravado para o binário do provedor para localizar e carregar as cadeias de caracteres necessárias dos recursos binários do provedor.
Usando o arquivo de código gerado em um provedor de modo de usuário
A ferramenta CTRPP irá gerar um ficheiro de .h código C/C++. Se o atributo do manifesto do providerType provedor estiver definido como userMode, o arquivo de código gerado conterá as seguintes definições que são úteis na codificação de um provedor de modo de usuário:
- n função de inicialização do provedor chamada prefixoCounterInitialize.
- Uma função de limpeza do provedor chamada prefixoCounterCleanup.
- Uma variável de provedor global que armazena o identificador de provedor aberto pela função prefixoCounterInitialize . O nome da variável é o valor do
symbolatributo doproviderelemento no manifesto. Essa variável deve ser usada em chamadas paraPerfCreateInstance,PerfDeleteInstancee outras APIs para controlar os dados do seu provedor. - Para cada conjunto de contadores, uma variável GUID de contraconjunto global com o GUID de contador. O nome da variável é o valor do atributo do
counterSetsymbolelemento mais o sufixo "GUID", por exemplo.MyCounterSetGUIDEssa variável deve ser usada em chamadas paraPerfCreateInstance,PerfDeleteInstancee outras APIs para controlar os dados do seu provedor. - Para cada contador, uma macro de contador com o valor do
idcontador. O nome da macro é o valor docounteratributo dosymbolelemento. Essa macro deve ser usada em chamadas paraPerfSetCounterRefValue,PerfSetULongLongCounterValuee outras APIs para definir os dados do seu provedor.
Nos nomes das funções, prefixo refere-se ao valor do -prefix parâmetro de linha de comando. Se o -prefix parâmetro não for usado, as funções serão nomeadas CounterInitialize e CounterCleanup.
Usando o arquivo de código gerado em um provedor de modo kernel
A ferramenta CTRPP irá gerar um ficheiro de .h código C/C++. Se o atributo do manifesto do providerType provedor estiver definido como kernelMode, o arquivo de código gerado conterá as seguintes definições que são úteis na codificação dos contraconjuntos de um provedor de modo kernel:
- Uma função de inicialização de conjunto de contadores chamada prefixoRegistrarCounterset. Esta função preenche uma estrutura RegInfo e, em seguida, invoca PcwRegister, colocando o identificador de registro de contraconjunto resultante na variável global Counterset .
- Uma função de limpeza de contraconjunto chamada prefixoUnregisterCounterset. Esta função invoca PcwUnregister no identificador de registro do counterset na variável global Counterset .
- Uma função de criação de instância chamada prefixoCreateCounterset. Esta função preenche uma matriz de estruturas PcwData e, em seguida, invoca PcwCreateInstance usando o identificador de registro de counterset na variável global Counterset .
- Uma função de limpeza de instância chamada prefixoCloseCounterset. Esta função invoca PcwCloseInstance.
- Uma função de relatório de instância chamada prefixoAddCounterset a ser usada a partir da função de retorno de chamada do counterset. Esta função preenche uma matriz de estruturas PcwData e invoca PcwAddInstance.
- Windows SDK 20H1 e posterior: Uma função de inicialização RegInfo chamada prefixoInitRegistrationInformationCounterset para uso em cenários avançados. Esta função preenche uma estrutura RegInfo . Esta função pode ser usada nos casos em que o prefixogerado RegisterCounterset não atende às suas necessidades, por exemplo, quando você deseja personalizar os valores na estrutura RegInfo ou quando deseja armazenar o identificador retornado em outra variável.
Nos nomes das funções, prefixo refere-se ao valor do -prefix parâmetro de linha de comando. Se o -prefix parâmetro não for usado, as funções não terão prefixo.
Observação
O prefixogerado AddCounterset function é usado quando você tem um retorno de chamada de counterset. O prefixogerado CreateCounterset e o prefixoCloseCounterset funções são usados quando você não tem um retorno de chamada de counterset.
Usando o arquivo de símbolo gerado
Se o parâmetro -ch for especificado na linha de comando, a ferramenta CTRPP gerará um arquivo de .h símbolo. Este arquivo contém os símbolos C/C++ para os nomes e GUIDs de cada conjunto de contadores no provedor. Os símbolos podem ser usados ao escrever programas que são codificados para consumir os dados desse contraconjunto usando as funções PerfLib V2 Consumer.
Requerimentos
| Requisito | Valor |
|---|---|
| Cliente mínimo suportado | Windows Vista [apenas aplicações de ambiente de trabalho] |
| Servidor mínimo suportado | Windows Server 2008 [apenas aplicações de ambiente de trabalho] |