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. |