Controllo dei codici di stato dei dati dei contatori
Il valore restituito delle funzioni PDH indica l'esito positivo o negativo della chiamata di funzione, che è diverso dallo stato dei dati del contatore. Controllare sempre il membro CStatus di un valore del contatore restituito nelle strutture PDH 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. Di seguito sono riportati i possibili valori di stato per i contatori:
Valore | Significato |
---|---|
PDH_CSTATUS_NO_MACHINE | PDH non è riuscito a connettersi al computer specificato nel percorso del contatore. Se questo stato viene restituito quando viene aggiunto il contatore, il contatore non viene completamente inizializzato. Ogni volta che la query viene aggiornata, PDH ritenta la connessione. Quando viene stabilita la connessione, viene ripresa la normale raccolta dati. |
PDH_CSTATUS_NO_OBJECT | Il computer specificato è stato trovato, ma l'oggetto prestazione specificato è stato trovato nel computer. Se questo stato viene restituito quando viene aggiunto il contatore, il contatore specificato non viene incluso nella query. Se questo stato viene restituito da un contatore attivo, i dati per tale contatore non sono validi. Ogni volta che vengono richiesti i dati, PDH tenta di ottenere questi dati del contatore. |
PDH_CSTATUS_NO_INSTANCE | L'istanza specificata non è stata trovata nell'oggetto . Se questo stato viene restituito mentre il contatore viene aggiunto alla query, il contatore viene aggiunto correttamente alla query, ma non sono disponibili dati finché non viene visualizzata l'istanza specifica e viene restituito uno stato di esito positivo. |
PDH_CSTATUS_NO_COUNTER | Il contatore specificato non è stato trovato nell'oggetto specificato. Se questo stato viene restituito quando viene aggiunto il contatore, il contatore non viene aggiunto alla query. Se questo stato viene restituito dopo la raccolta dei dati, i dati per tale contatore non sono validi. Ogni volta che vengono richiesti i dati, PDH tenta di ottenere questi dati del contatore. |
PDH_CSTATUS_INVALID_DATA | Il contatore è stato trovato correttamente, ma i dati restituiti non sono validi. Questo errore può verificarsi se il valore del contatore è minore del valore precedente. Poiché i valori del contatore aumentano sempre, il valore del contatore esegue il roll over su zero quando raggiunge il valore massimo. Un'altra possibile causa è un timer di sistema che non è corretto. |
PDH_CSTATUS_VALID_DATA | I dati per il contatore sono stati restituiti correttamente, ma non sono stati modificati dall'ultima lettura del contatore. |
PDH_CSTATUS_NEW_DATA | I dati per il contatore sono stati restituiti correttamente e sono diversi dall'ultima lettura del contatore. PDH_CSTATUS_NEW_DATA può essere restituito su un contatore di frequenza anche se la velocità risultante è uguale all'ultimo campione. Ciò è dovuto al fatto che il valore dei dati non elaborati utilizzato nella determinazione di questo valore di stato è stato modificato, non la frequenza calcolata. |
PDH_MORE_DATA | Il buffer fornito non è abbastanza grande per archiviare tutti i dati del contatore. Allocare un buffer più grande ed eseguire di nuovo la funzione. |
PDH_CSTATUS_ITEM_NOT_VALIDATED | Il contatore è stato aggiunto alla query, ma non è stato convalidato né eseguito l'accesso. Non sono disponibili informazioni di stato aggiuntive su questo contatore. |
PDH_CSTATUS_NO_COUNTERNAME | Nella query non è stato specificato alcun nome di contatore. |
PDH_CSTATUS_NO_COUNTER | Impossibile trovare il nome del contatore specificato. |
PDH_CSTATUS_NO_OBJECT | Impossibile trovare l'oggetto prestazioni specificato. |
PDH_CALC_NEGATIVE_DENOMINATOR | Un contatore ha un valore denominatore negativo. |
PDH_CALC_NEGATIVE_TIMEBASE | Un contatore ha un valore timebase negativo. |
PDH_CALC_NEGATIVE_VALUE | Un contatore ha un valore negativo. |
PDH_CSTATUS_NO_COUNTERNAME | Non è stato specificato alcun percorso del contatore. |
PDH_CSTATUS_BAD_COUNTERNAME | Il formato del percorso del contatore non è corretto. |