Função PdhLookupPerfNameByIndexA (pdh.h)

Retorna o nome do objeto de desempenho ou o nome do contador correspondente ao índice especificado.

Sintaxe

PDH_FUNCTION PdhLookupPerfNameByIndexA(
  [in]      LPCSTR  szMachineName,
  [in]      DWORD   dwNameIndex,
  [out]     LPSTR   szNameBuffer,
  [in, out] LPDWORD pcchNameBufferSize
);

Parâmetros

[in] szMachineName

Cadeia de caracteres terminada em nulo que especifica o nome do computador em que o objeto ou contador de desempenho especificado está localizado. O nome do computador pode ser especificado pelo nome DNS ou pelo endereço IP. Se FOR NULL, a função usará o computador local.

[in] dwNameIndex

Índice do objeto ou contador de desempenho.

[out] szNameBuffer

Buffer alocado pelo chamador que recebe o nome terminado em nulo do objeto ou contador de desempenho. Defina como NULL se pcchNameBufferSize for zero.

[in, out] pcchNameBufferSize

Tamanho do buffer szNameBuffer , em TCHARs. Se zero na entrada, a função retornará PDH_MORE_DATA e definirá esse parâmetro como o tamanho do buffer necessário. Se o buffer for maior que o tamanho necessário, a função definirá esse parâmetro como o tamanho real do buffer que foi usado. Se o tamanho especificado na entrada for maior que zero, mas menor que o tamanho necessário, você não deverá depender do tamanho retornado para realocar o buffer.

Retornar valor

Se a função for bem-sucedida, ela retornará ERROR_SUCCESS.

Se a função falhar, o valor retornado será um código de erro do sistema ou um código de erro PDH. Veja a seguir os valores possíveis.

Código de retorno Descrição
PDH_MORE_DATA
O buffer szNameBuffer não é grande o suficiente para conter o nome do contador. Esse valor retornado será esperado se pcchNameBufferSize for zero na entrada. Se o tamanho especificado na entrada for maior que zero, mas menor que o tamanho necessário, você não deverá depender do tamanho retornado para realocar o buffer.
PDH_INVALID_ARGUMENT
Um parâmetro não é válido ou está formatado incorretamente. Por exemplo, em algumas versões, você poderá receber esse erro se o tamanho especificado na entrada for maior que zero, mas menor que o tamanho necessário.

Comentários

Você deve chamar essa função duas vezes, a primeira vez para obter o tamanho do buffer necessário (defina szNameBuffer como NULL e pcchNameBufferSize como 0) e a segunda vez para obter os dados.

Windows XP: Você deve especificar um buffer e um tamanho de buffer. A função define pcchNameBufferSize como o tamanho necessário ou o tamanho do buffer que foi usado. Se o buffer for muito pequeno, a função retornará PDH_INSUFFICIENT_BUFFER em vez de PDH_MORE_DATA. O tamanho máximo da cadeia de caracteres em bytes é PDH_MAX_COUNTER_NAME * sizeof(TCHAR).

O valor de índice que você especificar deve corresponder a um dos valores de índice associados aos objetos ou contadores que foram carregados no computador. Os pares de valor de índice/nome são armazenados no valor do registro Contadores no local do Registro a seguir.

HKEY_LOCAL_MACHINE
   \SOFTWARE
      \Microsoft
         \Windows NT
            \CurrentVersion
               \Perflib
                  Last Counter = highest counter index
                  Last Help = highest help index
                  \009
                     Counters = 2 System 4 Memory...
                     Help = 3 The System Object Type...
                  \supported language, other than English
                     Counters = ...
                     Help = ...

Observação

O cabeçalho pdh.h define PdhLookupPerfNameByIndex como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho pdh.h
Biblioteca Pdh.lib
DLL Pdh.dll

Confira também

PdhLookupPerfIndexByName