Udostępnij za pośrednictwem


Sprawdzanie kodów stanu danych licznika

Wartość zwracana funkcji PDH wskazuje powodzenie lub niepowodzenie wywołania funkcji, które różni się od stanu danych licznika. Zawsze sprawdzaj element CStatus wartości licznika zwróconej w strukturach PDH, aby przed użyciem upewnić się, że zwrócone dane są prawidłowe. Jeśli wartość członka CStatus nie oznacza powodzenia, nie używaj danych. Poniżej przedstawiono możliwe wartości stanu liczników:

Wartość Znaczenie
PDH_CSTATUS_NO_MACHINE PDH nie może uzyskać połączenia z komputerem określonym w ścieżce licznika. Jeśli ten stan zostanie zwrócony po dodaniu licznika, licznik nie zostanie całkowicie zainicjowany. Za każdym razem, gdy zapytanie jest aktualizowane, pdH ponawia próbę połączenia. Po nawiązaniu połączenia normalne zbieranie danych zostanie wznowione.
PDH_CSTATUS_NO_OBJECT Określony komputer został znaleziony, ale określony obiekt wydajności został znaleziony na komputerze. Jeśli ten stan zostanie zwrócony po dodaniu licznika, określony licznik nie zostanie uwzględniony w zapytaniu. Jeśli ten stan jest zwracany przez aktywny licznik, dane dla tego licznika są nieprawidłowe. Za każdym razem, gdy dane są żądane, PDH próbuje uzyskać te dane licznika.
PDH_CSTATUS_NO_INSTANCE Określone wystąpienie nie zostało znalezione w obiekcie. Jeśli ten stan jest zwracany podczas dodawania licznika do zapytania, licznik zostanie pomyślnie dodany do zapytania, ale żadne dane nie będą dostępne do momentu wyświetlenia określonego wystąpienia i zwrócenia stanu pomyślnego.
PDH_CSTATUS_NO_COUNTER Określony licznik nie został znaleziony w określonym obiekcie. Jeśli ten stan zostanie zwrócony po dodaniu licznika, licznik nie zostanie dodany do zapytania. Jeśli ten stan zostanie zwrócony po zebraniu danych, dane dla tego licznika są nieprawidłowe. Za każdym razem, gdy są żądane dane, PDH próbuje uzyskać te dane licznika.
PDH_CSTATUS_BŁĘDNE_DANE Licznik został pomyślnie znaleziony, ale zwrócone dane są nieprawidłowe. Ten błąd może wystąpić, jeśli wartość licznika jest mniejsza niż poprzednia wartość. (Ponieważ wartości liczników zawsze zwiększają się, wartość licznika jest przerzucana na zero, gdy osiągnie maksymalną wartość). Inną możliwą przyczyną jest czasomierz systemowy, który nie jest poprawny.
PDH_CSTATUS_VALID_DATA Dane licznika zostały zwrócone pomyślnie, ale są niezmienione od ostatniego odczytu licznika.
PDH_CSTATUS_NEW_DATA Dane licznika zostały pomyślnie zwrócone i różnią się od poprzedniego odczytu. PDH_CSTATUS_NEW_DATA można zwrócić na licznik szybkości, nawet jeśli wynikowa stawka jest taka sama jak ostatnia próbka. Wynika to z tego, że wartość danych pierwotnych używana w określaniu tej wartości stanu uległa zmianie, a nie obliczonej szybkości.
PDH_WIĘCEJ_DANYCH Podany bufor nie był wystarczająco duży, aby przechowywać wszystkie dane licznika. Przydziel większy bufor i ponownie wykonaj funkcję.
PDH_CSTATUS_ELEMENT_NIEZWERYFIKOWANY Licznik został dodany do zapytania, ale nie został zweryfikowany ani nie uzyskał dostępu. Nie są dostępne żadne dodatkowe informacje o stanie tego licznika.
PDH_CSTATUS_NO_COUNTERNAME W zapytaniu nie określono żadnej nazwy licznika.
PDH_CSTATUS_NO_COUNTER Nie można odnaleźć określonej nazwy licznika.
PDH_CSTATUS_NO_OBJECT Nie można odnaleźć określonego obiektu wydajności.
PDH_OBLICZ_NEGATYWNY_MIANOWNIK Licznik ma ujemną wartość mianownika.
PDH_CALC_NEGATIVE_TIMEBASE Licznik ma ujemną wartość bazy czasowej.
PDH_CALC_NEGATIVE_VALUE Licznik ma wartość ujemną.
PDH_CSTATUS_NO_COUNTERNAME Nie określono ścieżki licznika.
PDH_CSTATUS_BAD_COUNTERNAME Format ścieżki licznika jest niepoprawny.