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 .