Condividi tramite


Funzione PdhEnumObjectsW (pdh.h)

Restituisce un elenco di oggetti disponibili nel computer specificato o nel file di log specificato.

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

Sintassi

PDH_FUNCTION PdhEnumObjectsW(
  [in]      LPCWSTR szDataSource,
  [in]      LPCWSTR szMachineName,
  [out]     PZZWSTR mszObjectList,
  [in, out] LPDWORD pcchBufferSize,
  [in]      DWORD   dwDetailLevel,
  [in]      BOOL    bRefresh
);

Parametri

[in] szDataSource

Nullstringa con terminazione che specifica il nome del file di log usato per enumerare gli oggetti prestazioni. 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 utilizzato per enumerare gli oggetti prestazioni.

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.

[out] mszObjectList

Buffer allocato dal chiamante che riceve l'elenco dei nomi degli oggetti. Ogni nome di oggetto in questo elenco viene terminato da un carattere null. L'elenco viene terminato con due caratteri null-terminatore. Impostare su NULL se il parametro pcchBufferLength è zero.

[in, out] pcchBufferSize

Dimensioni del buffer di mszObjectList, in TCHARs. Se zero in ingresso, 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.

Windows XP: Aggiungi uno alle dimensioni del buffer necessarie.

[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] bRefresh

Indica se l'elenco di oggetti memorizzati nella cache deve essere aggiornato automaticamente. Specificare uno dei valori seguenti.

Se si chiama questa funzione due volte, una volta per ottenere le dimensioni dell'elenco e una seconda volta per ottenere l'elenco effettivo, impostare questo parametro su TRUE alla prima chiamata e FALSE alla seconda chiamata. Se entrambe le chiamate sono TRUE, la seconda chiamata può restituire anche PDH_MORE_DATA perché i dati dell'oggetto potrebbero essere stati modificati tra le chiamate.

Valore Significato
TRUE
La cache degli oggetti viene aggiornata automaticamente prima che vengano restituiti gli oggetti.
false
Non aggiornare automaticamente la cache.

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
Il buffer mszObjectList è troppo piccolo per contenere l'elenco di oggetti. Questo valore restituito è previsto se pcchBufferLength è 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_CSTATUS_NO_MACHINE
Il computer specificato è offline o non disponibile.
PDH_CSTATUS_NO_OBJECT
Impossibile trovare l'oggetto specificato.
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.

Osservazioni

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

Nota

L'intestazione pdh.h definisce PdhEnumObjects 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

PdhEnumObjectItems

PdhEnumObjectsH