Compartilhar via


Função PdhEnumObjectsA (pdh.h)

Retorna uma lista de objetos disponíveis no computador especificado ou no arquivo de log especificado.

Para usar identificadores em fontes de dados, use a função PdhEnumObjectsH .

Sintaxe

PDH_FUNCTION PdhEnumObjectsA(
  [in]      LPCSTR  szDataSource,
  [in]      LPCSTR  szMachineName,
  [out]     PZZSTR  mszObjectList,
  [in, out] LPDWORD pcchBufferSize,
  [in]      DWORD   dwDetailLevel,
  [in]      BOOL    bRefresh
);

Parâmetros

[in] szDataSource

cadeia de caracteres nulaterminada que especifica o nome do arquivo de log usado para enumerar os objetos de desempenho. Se NULL, a função usará o computador especificado em

o parâmetro szMachineName para enumerar os nomes.

[in] szMachineName

cadeia de caracteres terminada pornulo que especifica o nome do computador usado para enumerar os objetos de desempenho.

Inclua as barras principais no nome do computador, por exemplo, \computername.

Se o parâmetro szDataSource for NULL, você poderá definir szMachineName para NULL para especificar o computador local.

[out] mszObjectList

Buffer alocado pelo chamador que recebe a lista de nomes de objetos. Cada nome de objeto nesta lista é encerrado por um caractere de nulo. A lista é encerrada com dois caracteres nulos-terminator. Defina como NULL se o parâmetro pcchBufferLength for zero.

[in, out] pcchBufferSize

Tamanho do buffer mszObjectList , 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.

Windows XP: Adicionar um ao tamanho do buffer necessário.

[in] dwDetailLevel

Nível de detalhes dos itens de desempenho a serem retornados. Todos os itens que são do nível de detalhes especificado ou menos serão retornados (os níveis são listados em ordem crescente). Esse parâmetro pode ser um dos valores a seguir.

Valor Significado
PERF_DETAIL_NOVICE
Nível de detalhes do usuário novato.
PERF_DETAIL_ADVANCED
Nível de usuário avançado de detalhes.
PERF_DETAIL_EXPERT
Nível de usuário especialista em detalhes.
PERF_DETAIL_WIZARD
Nível de detalhes do designer do sistema.

[in] bRefresh

Indica se a lista de objetos armazenados em cache deve ser atualizada automaticamente. Especifique um dos valores a seguir.

Se você chamar essa função duas vezes, uma vez para obter o tamanho da lista e uma segunda vez para obter a lista real, defina esse parâmetro para TRUE na primeira chamada e FALSE na segunda chamada. Se ambas as chamadas forem VERDADEIRO, a segunda chamada também poderá retornar PDH_MORE_DATA porque os dados do objeto podem ter sido alterados entre chamadas.

Valor Significado
verdadeiro
O cache de objetos é atualizado automaticamente antes que os objetos sejam retornados.
falso
Não atualize automaticamente o cache.

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 mszObjectList é muito pequeno para manter a lista de objetos. Esse valor retornado será esperado se pcchBufferLength 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_CSTATUS_NO_MACHINE
O computador especificado está offline ou indisponível.
PDH_CSTATUS_NO_OBJECT
Não foi possível encontrar o objeto especificado.
PDH_INVALID_ARGUMENT
Um parâmetro não é válido. 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 mszObjectList para NULL e pcchBufferLength para 0) e a segunda vez para obter os dados.

Nota

O cabeçalho pdh.h define PdhEnumObjects 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

PdhEnumObjectItems

PdhEnumObjectsH