Codici di errore dell'helper Dati di prestazione
Tutte le funzioni PDH (Performance Data Helper) restituiscono un valore di tipo PDH_STATUS. Se la funzione ha esito positivo, il valore restituito è ERROR_SUCCESS
. In caso contrario, la funzione restituisce un codice di errore di sistema o un codice di errore PDH. Per recuperare il testo della descrizione per l'errore nell'applicazione, usare la funzione FormatMessage come illustrato nell'esempio seguente.
#include <windows.h>
#include <stdio.h>
#include <pdhmsg.h>
void main(void)
{
HANDLE hPdhLibrary = NULL;
LPWSTR pMessage = NULL;
DWORD dwErrorCode = PDH_PLA_ERROR_ALREADY_EXISTS;
hPdhLibrary = LoadLibrary(L"pdh.dll");
if (NULL == hPdhLibrary)
{
wprintf(L"LoadLibrary failed with %lu\n", GetLastError());
return;
}
if (!FormatMessage(FORMAT_MESSAGE_FROM_HMODULE |
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_IGNORE_INSERTS,
hPdhLibrary,
dwErrorCode,
0,
(LPWSTR)&pMessage,
0,
NULL))
{
wprintf(L"Format message failed with 0x%x\n", GetLastError());
return;
}
wprintf(L"Formatted message: %ls\n", pMessage);
LocalFree(pMessage);
}
Per le funzioni di raccolta dati e formattazione, è importante ricordare che il valore restituito della funzione indica l'esito positivo o negativo della chiamata di funzione e non necessariamente quello dei dati del contatore. Controllare sempre il membro CStatus del valore del contatore restituito per assicurarsi che i dati restituiti siano validi prima di usarli. Se il valore del membro CStatus non indica l'esito positivo, non usare i dati.
Nella tabella seguente viene fornito un elenco di codici di errore specifici per PDH. Questi valori sono definiti nel pdhmsg.h
file di intestazione.
Codice di errore | Descrizione |
---|---|
0x00000000 (PDH_CSTATUS_VALID_DATA) | I dati restituiti sono validi. |
0x00000001 (PDH_CSTATUS_NEW_DATA) | Il valore restituito dei dati è valido e diverso dall'ultimo esempio. |
0x800007D0 (PDH_CSTATUS_NO_MACHINE) | Impossibile connettersi al computer specificato oppure il computer è offline. |
0x800007D1 (PDH_CSTATUS_NO_INSTANCE) | L'istanza specificata non è presente. |
0x800007D2 (PDH_MORE_DATA) | Il buffer fornito include più dati da restituire rispetto a quelli del buffer fornito. Allocare un buffer più grande e chiamare di nuovo la funzione. |
0x800007D3 (PDH_CSTATUS_ITEM_NOT_VALIDATED) | L'elemento di dati è stato aggiunto alla query, ma non è stato convalidato né ha eseguito l'accesso. Non sono disponibili altre informazioni sullo stato per questo elemento di dati. |
0x800007D4 (PDH_RETRY) | L'operazione selezionata deve essere ritentata. |
0x800007D5 (PDH_NO_DATA) | Nessun dato da restituire. |
0x800007D6 (PDH_CALC_NEGATIVE_DENOMINATOR) | È stato rilevato un contatore con un valore denominatore negativo. |
0x800007D7 (PDH_CALC_NEGATIVE_TIMEBAedizione Standard) | È stato rilevato un contatore con un valore di base temporale negativo. |
0x800007D8 (PDH_CALC_NEGATIVE_VALUE) | È stato rilevato un contatore con un valore negativo. |
0x800007D9 (PDH_DIALOG_CANCELLED) | L'utente ha annullato la finestra di dialogo. |
0x800007DA (PDH_END_OF_LOG_FILE) | È stata raggiunta la fine del file di log. |
0x800007DB (PDH_ASYNC_QUERY_TIMEOUT) | Si è verificato un timeout durante l'attesa del thread di raccolta di contatori asincrono. |
0x800007DC (PDH_CANNOT_edizione StandardT_DEFAULT_REALTIME_DATASOURCE) | Impossibile modificare l'origine dati predefinita in tempo reale impostata. Sono disponibili sessioni di query in tempo reale che raccolgono i dati dei contatori. |
0xC0000BB8 (PDH_CSTATUS_NO_OBJECT) | L'oggetto specificato non viene trovato nel sistema. |
0xC0000BB9 (PDH_CSTATUS_NO_COUNTER) | Impossibile trovare il contatore specificato. |
0xC0000BBA (PDH_CSTATUS_INVALID_DATA) | I dati restituiti non sono validi. |
0xC0000BBB (PDH_MEMORY_ALLOCATION_FAILURE) | Una funzione PDH non è in grado di allocare memoria temporanea sufficiente per completare l'operazione. Chiudere alcune applicazioni o estendere il file di pagina e ripetere la funzione. |
0xC0000BBC (PDH_INVALID_HANDLE) | L'handle non è un oggetto PDH valido. |
0xC0000BBD (PDH_INVALID_ARGUMENT) | Un argomento obbligatorio non è corretto o mancante. |
0xC0000BBE (PDH_FUNCTION_NOT_FOUND) | Impossibile trovare la funzione specificata. |
0xC0000BBF (PDH_CSTATUS_NO_COUNTERNAME) | Non è stato specificato alcun contatore. |
0xC0000BC0 (PDH_CSTATUS_BAD_COUNTERNAME) | Impossibile analizzare il percorso del contatore. Controllare il formato e la sintassi del percorso specificato. |
0xC0000BC1 (PDH_INVALID_BUFFER) | Il buffer passato dal chiamante non è valido. |
0xC0000BC2 (PDH_INSUFFICIENT_BUFFER) | I dati richiesti sono maggiori del buffer fornito. Impossibile restituire i dati richiesti. |
0xC0000BC3 (PDH_CANNOT_CONNECT_MACHINE) | Impossibile connettersi al computer richiesto. |
0xC0000BC4 (PDH_INVALID_PATH) | Impossibile interpretare il percorso del contatore specificato. |
0xC0000BC5 (PDH_INVALID_INSTANCE) | Impossibile leggere il nome dell'istanza dal percorso del contatore specificato. |
0xC0000BC6 (PDH_INVALID_DATA) | I dati non sono validi. |
0xC0000BC7 (PDH_NO_DIALOG_DATA) | Blocco di dati della finestra di dialogo mancante o non valido. |
0xC0000BC8 (PDH_CANNOT_READ_NAME_STRINGS) | Impossibile leggere il contatore e/o il testo della Guida dal computer specificato. |
0xC0000BC9 (PDH_LOG_FILE_CREATE_ERROR) | Impossibile creare il file di log specificato. |
0xC0000BCA (PDH_LOG_FILE_OPEN_ERROR) | Impossibile aprire il file di log specificato. |
0xC0000BCB (PDH_LOG_TYPE_NOT_FOUND) | Il tipo di file di log specificato non è stato installato in questo sistema. |
0xC0000BCC (PDH_NO_MORE_DATA) | Dati disponibili esauriti. |
0xC0000BCD (PDH_ENTRY_NOT_IN_LOG_FILE) | Il record specificato non è stato trovato nel file di log. |
0xC0000BCE (PDH_DATA_SOURCE_IS_LOG_FILE) | L'origine dati specificata è un file di log. |
0xC0000BCF (PDH_DATA_SOURCE_IS_REAL_TIME) | L'origine dati specificata è l'attività corrente. |
0xC0000BD0 (PDH_UNABLE_READ_LOG_HEADER) | Impossibile leggere l'intestazione del file di log. |
0xC0000BD1 (PDH_FILE_NOT_FOUND) | Impossibile trovare il file specificato. |
0xC0000BD2 (PDH_FILE_ALREADY_EXISTS) | Esiste già un file con il nome file specificato. |
0xC0000BD3 (PDH_NOT_IMPLEMENTED) | La funzione a cui si fa riferimento non è stata implementata. |
0xC0000BD4 (PDH_STRING_NOT_FOUND) | Impossibile trovare la stringa specificata nell'elenco del nome delle prestazioni e delle stringhe di testo della Guida. |
0x80000BD5 (PDH_UNABLE_MAP_NAME_FILES) | Impossibile eseguire il mapping ai file di dati del nome del contatore delle prestazioni. I dati verranno letti dal Registro di sistema e archiviati in locale. |
0xC0000BD6 (PDH_UNKNOWN_LOG_FORMAT) | Il formato del file di log specificato non è riconosciuto dalla DLL PDH. |
0xC0000BD7 (PDH_UNKNOWN_LOGSVC_COMMAND) | Il valore del comando log service specificato non viene riconosciuto. |
0xC0000BD8 (PDH_LOGSVC_QUERY_NOT_FOUND) | Impossibile trovare o aprire la query specificata dal servizio di log. |
0xC0000BD9 (PDH_LOGSVC_NOT_OPENED) | Impossibile aprire la chiave del servizio log dei dati delle prestazioni. Ciò può essere dovuto a privilegi insufficienti o perché il servizio non è stato installato. |
0xC0000BDA (PDH_WBEM_ERROR) | Errore durante l'accesso all'archivio dati WBEM. |
0xC0000BDB (PDH_ACCESS_DENIED) | Impossibile accedere al computer o al servizio desiderato. Controllare le autorizzazioni e l'autenticazione del servizio di log o la sessione utente interattiva rispetto a quelle nel computer o nel servizio monitorato. |
0xC0000BDC (PDH_LOG_FILE_TOO_SMALL) | La dimensione massima del file di log specificata è troppo piccola per registrare i contatori selezionati. Nessun dato verrà registrato in questo file di log. Specificare un set più piccolo di contatori per registrare o una dimensione di file maggiore e riprovare a eseguire questa chiamata. |
0xC0000BDD (PDH_INVALID_DATASOURCE) | Impossibile connettersi al nome dell'origine dati ODBC. |
0xC0000BDE (PDH_INVALID_SQLDB) | database SQL non contiene un set valido di tabelle per Perfmon. |
0xC0000BDF (PDH_NO_COUNTERS) | Non sono stati trovati contatori per questo set di log SQL perfmon. |
0xC0000BE0 (PDH_SQL_ALLOC_FAILED) | Chiamata a SQLAllocStmt non riuscita con %1. |
0xC0000BE1 (PDH_SQL_ALLOCCON_FAILED) | Chiamata a SQLAlloc Connessione non riuscita con %1. |
0xC0000BE2 (PDH_SQL_EXEC_DIRECT_FAILED) | Chiamata a SQLExecDirect non riuscita con %1. |
0xC0000BE3 (PDH_SQL_FETCH_FAILED) | Chiamata a SQLFetch non riuscita con %1. |
0xC0000BE4 (PDH_SQL_ROWCOUNT_FAILED) | Chiamata a SQLRowCount non riuscita con %1. |
0xC0000BE5 (PDH_SQL_MORE_RESULTS_FAILED) | Chiamata a SQLMoreResults non riuscita con %1. |
0xC0000BE6 (PDH_SQL_CONNECT_FAILED) | Chiamata a SQL Connessione non riuscita con %1. |
0xC0000BE7 (PDH_SQL_BIND_FAILED) | Chiamata a SQLBindCol non riuscita con %1. |
0xC0000BE8 (PDH_CANNOT_CONNECT_WMI_edizione Standard RVER) | Impossibile connettersi al server WMI nel computer richiesto. |
0xC0000BE9 (PDH_PLA_COLLECTION_ALREADY_RUNNING) | La raccolta "%1!s!" è già in esecuzione. |
0xC0000BEA (PDH_PLA_ERROR_SCHEDULE_OVERLAP) | L'ora di inizio specificata è dopo l'ora di fine. |
0xC0000BEB (PDH_PLA_COLLECTION_NOT_FOUND) | La raccolta "%1!s!" non esiste. |
0xC0000BEC (PDH_PLA_ERROR_SCHEDULE_ELpiattaforma di strumenti analitici ED) | L'ora di fine specificata è già trascorsa. |
0xC0000BED (PDH_PLA_ERROR_NOSTART) | La raccolta "%1!s!" non è stata avviata; controllare la presenza di eventuali errori nel registro eventi dell'applicazione. |
0xC0000Bedizione Enterprise (PDH_PLA_ERROR_ALREADY_EXISTS) | La raccolta "%1!s!" esiste già. |
0xC0000BEF (PDH_PLA_ERROR_TYPE_MISMATCH) | Esiste una mancata corrispondenza nel tipo di impostazioni. |
0xC0000BF0 (PDH_PLA_ERROR_FILEPATH) | Le informazioni specificate non vengono risolte in un nome di percorso valido. |
0xC0000BF1 (PDH_PLA_edizione StandardRVICE_ERROR) | Il servizio "Log prestazioni e avvisi" non ha risposto. |
0xC0000BF2 (PDH_PLA_VALIDATION_ERROR) | Le informazioni passate non sono valide. |
0x80000BF3 (PDH_PLA_VALIDATION_WARNING) | Le informazioni passate non sono valide. |
0xC0000BF4 (PDH_PLA_ERROR_NAME_TOO_LONG) | Il nome specificato è troppo lungo. |
0xC0000BF5 (PDH_INVALID_SQL_LOG_FORMAT) | Il formato del log SQL non è corretto. Il formato corretto è SQL:<DSN-name>!<LogSet-Name> . |
0xC0000BF6 (PDH_COUNTER_ALREADY_IN_QUERY) | Il contatore delle prestazioni nella chiamata PdhAddCounter è già stato aggiunto nella query sulle prestazioni. Questo contatore viene ignorato. |
0xC0000BF7 (PDH_BINARY_LOG_CORRUPT) | Impossibile leggere le informazioni sui contatori e i dati dai file di log binari di input. |
0xC0000BF8 (PDH_LOG_SAMPLE_TOO_SMALL) | Almeno uno dei file di log binari di input contiene meno di due esempi di dati. |
0xC0000BF9 (PDH_OS_LATER_VERSION) | La versione del sistema operativo nel computer denominato %1 è successiva a quella nel computer locale. Questa operazione non è disponibile nel computer locale. |
0xC0000BFA (PDH_OS_EARLIER_VERSION) | %1 supporta %2 o versione successiva. Controllare la versione del sistema operativo nel computer denominato %3. |
0xC0000BFB (PDH_INCORRECT_APPEND_TIME) | Il file di output deve contenere dati precedenti al file da aggiungere. |
0xC0000BFC (PDH_UNMATCHED_APPEND_COUNTER) | Entrambi i file devono avere contatori identici per accodare. |
0xC0000BFD (PDH_SQL_ALTER_DETAIL_FAILED) | Impossibile modificare il layout della tabella CounterDetail nel database SQL. |
0xC0000BFE (PDH_QUERY_PERF_DATA_TIMEOUT) | Il sistema è occupato. Si è verificato un timeout durante la raccolta dei dati dei contatori. Riprovare in un secondo momento o aumentare il valore del Registro di sistema CollectTime . |