Condividi tramite


Funzione PdhEnumObjectItemsA (pdh.h)

Restituisce i nomi dei contatori e delle istanze dell'oggetto specificati presenti nel computer specificato o nel file di log specificato.

Per usare handle per le origini dati, usare la funzione pdhEnumObjectItemsH .

Sintassi

PDH_FUNCTION PdhEnumObjectItemsA(
  [in]      LPCSTR  szDataSource,
  [in]      LPCSTR  szMachineName,
  [in]      LPCSTR  szObjectName,
  [out]     PZZSTR  mszCounterList,
  [in, out] LPDWORD pcchCounterListLength,
  [out]     PZZSTR  mszInstanceList,
  [in, out] LPDWORD pcchInstanceListLength,
  [in]      DWORD   dwDetailLevel,
  [in]      DWORD   dwFlags
);

Parametri

[in] szDataSource

Nullstringa con terminazione che specifica il nome del file di log usato per enumerare i nomi dei contatori e delle istanze. Se null, la funzione usa il computer specificato in

parametro szMachineName per enumerare i nomi.

[in] szMachineName

Nullstringa con terminazione che specifica il nome del computer che contiene i nomi dei contatori e delle istanze da enumerare.

Includere le barre iniziali nel nome del computer, ad esempio \nomecomputer.

Se il parametro szDataSource è null, è possibile impostare szMachineName su NULL per specificare il computer locale.

[in] szObjectName

Nullstringa con terminazione che specifica il nome dell'oggetto i cui nomi di contatore e istanza da enumerare.

[out] mszCounterList

Buffer allocato dal chiamante che riceve un elenco di nomi di contatori nullcon terminazione forniti dall'oggetto specificato. L'elenco contiene nomi di contatori univoci. L'elenco viene terminato da due caratteri NULL. Impostare su NULL se il parametro pcchCounterListLength è zero.

[in, out] pcchCounterListLength

Dimensioni del buffer di mszCounterList , in TCHARs. Se zero per l'input e l'oggetto esiste, la funzione restituisce PDH_MORE_DATA e imposta questo parametro sulla dimensione del buffer richiesta. Se il buffer è maggiore delle dimensioni necessarie, la funzione imposta questo parametro sulle dimensioni effettive del buffer utilizzato. Se la dimensione specificata per l'input è maggiore di zero ma minore della dimensione richiesta, non è consigliabile basarsi sulle dimensioni restituite per riallocare il buffer.

[out] mszInstanceList

Buffer allocato dal chiamante che riceve un elenco di nullnomi di istanza con terminazione forniti dall'oggetto specificato. L'elenco contiene nomi di istanza univoci. L'elenco viene terminato da due caratteri NULL. Impostare su NULL se pcchInstanceListLength è zero.

[in, out] pcchInstanceListLength

Dimensioni del buffer di mszInstanceList, in TCHARs. Se zero per l'input e l'oggetto esiste, la funzione restituisce PDH_MORE_DATA e imposta questo parametro sulla dimensione del buffer richiesta. Se il buffer è maggiore delle dimensioni necessarie, la funzione imposta questo parametro sulle dimensioni effettive del buffer utilizzato. Se la dimensione specificata per l'input è maggiore di zero ma minore della dimensione richiesta, non è consigliabile basarsi sulle dimensioni restituite per riallocare il buffer.

Se l'oggetto specificato non supporta istanze variabili, il valore restituito sarà zero. Se l'oggetto specificato supporta istanze variabili, ma non dispone attualmente di istanze, il valore restituito è 2, ovvero la dimensione di una stringa di elenco MULTI_SZ vuota.

[in] dwDetailLevel

Livello di dettaglio degli elementi delle prestazioni da restituire. Verranno restituiti tutti gli elementi del livello di dettaglio specificato o meno (i livelli sono elencati in ordine crescente). Questo parametro può essere uno dei valori seguenti.

Valore Significato
PERF_DETAIL_NOVICE
Livello di dettaglio utente principiante.
PERF_DETAIL_ADVANCED
Livello di dettaglio avanzato dell'utente.
PERF_DETAIL_EXPERT
Livello di dettaglio dell'utente esperto.
PERF_DETAIL_WIZARD
Livello di dettaglio della finestra di progettazione del sistema.

[in] dwFlags

Questo parametro deve essere zero.

Valore restituito

Se la funzione ha esito positivo, restituisce ERROR_SUCCESS.

Se la funzione ha esito negativo, il valore restituito è un codice di errore di sistema o un codice di errore PDH . Di seguito sono riportati i valori possibili.

Codice restituito Descrizione
PDH_MORE_DATA
Uno dei buffer è troppo piccolo per contenere l'elenco di nomi. Questo valore restituito è previsto se pcchCounterListLength o pcchInstanceListLength è zero all'input. Se la dimensione specificata per l'input è maggiore di zero ma minore della dimensione richiesta, non è consigliabile basarsi sulle dimensioni restituite per riallocare il buffer.
PDH_INVALID_ARGUMENT
Parametro non valido. Ad esempio, in alcune versioni è possibile ricevere questo errore se la dimensione specificata per l'input è maggiore di zero, ma minore della dimensione richiesta.
PDH_MEMORY_ALLOCATION_FAILURE
Impossibile allocare memoria per supportare questa funzione.
PDH_CSTATUS_NO_MACHINE
Il computer specificato è offline o non disponibile.
PDH_CSTATUS_NO_OBJECT
Impossibile trovare l'oggetto specificato nel computer specificato o nel file di log specificato.

Osservazioni

È necessario chiamare questa funzione due volte, la prima volta per ottenere le dimensioni del buffer necessarie (impostare i buffer su NULL e le dimensioni su 0) e la seconda volta per ottenere i dati.

Le chiamate consecutive a questa funzione restituiranno elenchi identici di contatori e istanze, poiché PdhEnumObjectItems eseguirà sempre una query sull'elenco di oggetti prestazioni definiti dall'ultima chiamata a PdhEnumObjects o PdhEnumObjectItems. Per aggiornare l'elenco di oggetti prestazioni, chiamare PdhEnumObjects con un valore bRefresh flag di TRUE prima di chiamare di nuovo PdhEnumObjectItems.

L'ordine dei nomi dell'istanza e dei contatori non è determiniato.

Esempi

Per un esempio, vedere enumerazione degli oggetti processo.

Nota

L'intestazione pdh.h definisce PdhEnumObjectItems come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [solo app desktop]
server minimo supportato Windows Server 2003 [solo app desktop]
piattaforma di destinazione Finestre
intestazione pdh.h
libreria Pdh.lib
dll Pdh.dll

Vedere anche

PdhEnumObjectItemsH

PdhEnumObjects