Usando APIs do PDH corretamente em um idioma localizado

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 287159
Sumário
Desempenho auxiliar de dados (PDH) APIs usam nomes de objeto e contador que estão no idioma localizado. Portanto, aplicativos que usam APIs do PDH sempre devem usar a seqüência localizada para a especificação de nome de objeto ou contador. Antes de coletar dados de desempenho, o aplicativo deve saber o nome objeto ou contador no aplicativo. Se o nome de objetos e contadores é conhecido somente como uma seqüência em inglês no aplicativo, existem algumas etapas adicionais que você deve executar em um sistema que usa um idioma localizado, como o francês ou alemão. Este artigo explica as etapas que são necessárias.
Mais Informações
Os aplicativos que recuperar nomes de objeto e contador usando o PdhEnumObjects() ou PdhEnumObjectItems() APIs sempre terão cadeias de caracteres que correspondem ao idioma localizado. Se o aplicativo estiver interessado na coleta os dados de desempenho de todos os objetos de desempenho, contadores e instâncias, ele pode usar os nomes que são retornados pelo API PdhEnumObjects() ou a API PdhEnumObjectItems() para construir um caminho de contador no idioma localizado e, em seguida, adicione o contador usando a API PdhAddCounter () para uma consulta PDH. Se os dados de desempenho são coletados em dessa maneira, em seguida, o aplicativo irá funcionar corretamente em cada idioma localizado.

No entanto, existem situações em que um aplicativo está interessado na coleta de dados de desempenho de apenas um objeto de desempenho específico, o contador e instância. Em tais casos, o aplicativo deve saber o nome idioma localizado em chamadas API PDH que levam um nome, como PdhAddCounter () . No entanto, cada um dos objetos e contadores têm nomes diferentes "amigáveis" em cada idioma localizado. Esses nomes amigáveis são expostos pela extensão de desempenho respectivos DLL em um arquivo .ini para cada idioma localizado. Por exemplo, objetos têm um nome amigável, como "Processo" em inglês. Em francês ou alemão, o mesmo objeto é representado por um nome amigável no idioma correspondente e o nome não é uma seqüência de caracteres diretamente é convertida de ANSI em UNICODE. Da mesma forma, o contador tem um nome amigável, como "% Processor Time" em inglês. Entretanto, instâncias não tem um nome de usuário amigável em cada linguagem. Em uma versão de inglês do Windows NT ou Windows 2000, as seqüências de objeto e contador são armazenadas no idioma nativo do sistema e em inglês. Cada objeto ou contador é identificada por um índice de objeto ou contador respectivamente. O índice do objeto ou contador e o nome informações de mapeamento é armazenada no valor de registro de contador sob a seguinte chave do Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\LangId


onde LangId é 009 para inglês AMERICANO. O valor de registro do contador é do tipo REG_MULTI_SZ e pode ser exibido somente usando Regedt32. O valor de índice para o sistema base contadores e objetos, como processador, processo, thread e memória, são sempre os mesmos independentemente da versão localizada do sistema operacional ou service pack instalado. No entanto, o valor de índice de objetos que são retornados por uma extensão de desempenho os DLL serão diferente em sistemas diferentes. Uma extensão de desempenho pode ser instalada na parte superior do sistema operacional base usando o utilitário LODCTR.exe. LODCTR.exe gera índices do arquivo .ini fornecido para este utilitário. Portanto, o valor de índice para provedores de contador de extensão de desempenho, como Microsoft Internet Information Server e Microsoft SQL Server, serão diferente de sistema para sistema, dependendo da seqüência de instalação.

Se o aplicativo sabe os nomes de objeto e contador apenas como seqüências de caracteres em inglês, esses nomes podem ser convertidos da seguinte maneira para os nomes localizados correspondentes.

Use a API de registro para obter o contador títulos e índices em inglês da seguinte maneira:
dwStatus = RegQueryValueEx(   HKEY_PERFORMANCE_DATA,   "Counter 009",    NULL,    &dwType,    lpmszCounters,   &cbCounters);				
o buffer lpmszCounters é preenchido com o valor de seqüência múltipla, incluindo os nomes de objeto e contador com os índices. É o "009" para inglês. O formato é seguida de seqüência de caracteres do nome de seqüência de índice e, em seguida, índice seguida nome de seqüência de caracteres encerrado por outro caractere NULL no final de seqüência. O aplicativo pode obter uma vez, essa lista que pode ser usada para obter a identificação correspondente a uma seqüência de caracteres inglês objeto/contador. Depois que o índice de um objeto de desempenho, bem como contador tenha sido identificado, o aplicativo pode localizar o objeto localizado ou o nome do contador do índice usando PdhLookupPerfNameByIndex() API. O objeto localizado e o nome de contador retornado por essa API podem ser usados em outras chamadas de API PDH que nomes de objeto ou contador. Se o nome de objeto ou contador de desempenho é coletado usando PdhLookupPerfNameByIndex() API, em seguida, o aplicativo irá funcionar corretamente em cada idioma localizado.

Se o aplicativo é distribuído e armazena o contador inglês seqüências em um outro sistema, em seguida, o sistema monitorado, o aplicativo pode enfrentar um problema se não houver contadores duplicados com o mesmo nome em inglês. Para obter a identificação de objeto ou contador que mapeia para o inglês seqüência de caracteres é ambígua. Para contornar esse problema em seus aplicativos, use a lógica de manipulação de exceção.
Referências
APIs do PDH são implementadas no arquivo PDH.dll e essa DLL em acompanha o Windows 2000. Para o Windows NT 4.0, é necessário baixar uma versão com arquivo redistribuível PDH.dll separada.Para obter informações adicionais sobre como obter esse arquivo para o Windows NT 4.0, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
284996Disponível para o Windows NT 4.0 mais recente redistribuível PDH.dll
Para obter informações adicionais sobre as APIs do PDH, consulte os tópicos Performance Monitoring, na seção serviços base da biblioteca MSDN.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 287159 - Última Revisão: 11/21/2006 15:35:37 - Revisão: 4.1

Interface de Programação de Aplicativos do Microsoft Win32

  • kbmt kbapi kbinfo kbkernbase kbperfmon KB287159 KbMtpt
Comentários