Compartilhar via


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 nulaterminada 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 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 nuloterminado do objeto ou contador de desempenho. Defina como NULL se pcchNameBufferSize for zero.

[in, out] pcchNameBufferSize

Tamanho do buffer de szNameBuffer do , 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 usado. Se o tamanho especificado na entrada for maior que zero, mas menor que o tamanho necessário, você não deverá contar com o tamanho retornado para realocar o buffer.

Valor de retorno

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 do 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á contar com o 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.

Observações

Você deve chamar essa função duas vezes, a primeira vez para obter o tamanho do buffer necessário (definir szNameBuffer para NULL e pcchNameBufferSize para 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 para o tamanho necessário ou o tamanho do buffer 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 especificado 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 nos contadores valor do registro 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 = ...

Nota

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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho pdh.h
biblioteca Pdh.lib
de DLL Pdh.dll

Consulte também

PdhLookupPerfIndexByName