Udostępnij przez


Globalna sesja śledzenia rejestratora

Global Logger trace session rejestruje zdarzenia, które występują podczas procesu rozruchu, zanim system jest w pełni operacyjny, takich jak zdarzenia generowane przez sterowniki urządzeń. Jest to zarezerwowana sesja śledzenia wbudowana w system Windows.

Globalne sesje śledzenia rejestratora zawsze zapisują komunikaty w dzienniku śledzenia. Globalny rejestrator nie obsługuje sesji śledzenia w czasie rzeczywistym ani buforowanych sesji śledzenia.

Ponieważ globalny rejestrator musi być dostępny na wczesnym etapie procesu rozruchu systemu operacyjnego, jest uruchamiany i konfigurowany przy użyciu wpisów rejestru (w HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger podklucz), zamiast wywołań funkcji. Po uruchomieniu globalny rejestrator działa jak zwykła sesja śledzenia zdarzeń.

Sesja śledzenia Global Logger używa zarezerwowanej nazwy sesji "GlobalLogger". GUID kontrolny jest reprezentowany przez stałą GlobalLoggerGuid. Utwórz sesję śledzenia Global Logger, a następnie ponownie uruchom komputer, aby ją rozpocząć. Na komputerze może być uruchomiona tylko jedna sesja śledzenia Global Logger.

Aby utworzyć sesję śledzenia globalnego rejestratora, użyj usługi Tracelog. Automatycznie tworzy podklucz rejestru i wpisy, które przechowują opcje sesji śledzenia. Sesja śledzenia Global Loggera rozpoczyna się po ponownym uruchomieniu komputera. Aby uzyskać więcej informacji, zobacz Tracelog Command Syntax (Składnia poleceń tracelog).

Aby sformatować komunikaty śledzenia z globalnej sesji śledzenia rejestratora, użyj narzędzia Tracefmt z plikiem system.tmf, pliku formatu komunikatu śledzenia zawartego w zestawie WDK.

Ponieważ sesja globalnego rejestratora jest wyzwalana przez wpisy rejestru, jest uruchamiana za każdym razem, gdy wpisy są wyświetlane w rejestrze. Aby zapobiec uruchamianiu sesji globalnego rejestratora przy każdym uruchomieniu systemu, ustaw wartość wpisu Start na 0 lub usuń wszystkie wpisy rejestru.

Sesję śledzenia Global Logger można przekonwertować na rejestrator jądra NT, co umożliwia śledzenie jądra podczas procesu rozruchu. Aby uzyskać informacje, zobacz Sesja globalnego rejestratora czasu rozruchu

Dostawcy śledzenia, tacy jak sterowniki trybu jądra i aplikacje trybu użytkownika, mogą logować się do sesji śledzenia globalnego rejestratora. Umożliwia to śledzenie sterownika lub innego dostawcy śledzenia podczas rozruchu systemu. Aby uzyskać informacje, zobacz Rejestrowanie w globalnej sesji rejestratora

Ograniczenia globalnej sesji śledzenia rejestratora

Sesja śledzenia Global Loggera jest bardzo przydatna, ale ważne jest, aby pamiętać o jej ograniczeniach:

Jednocześnie można uruchomić tylko jedną sesję globalnego rejestratora.

Sesja globalna rejestratora nie wysyła powiadomień o włączeniu do dostawców.

Wpisy rejestru globalnego rejestratora pozostają w rejestrze i obowiązują do czasu ich zresetowania lub usunięcia ręcznie lub użycia tracelog -remove polecenia. Do momentu ich zresetowania sesja globalna rejestratora jest uruchamiana za każdym razem, gdy uruchamiasz system.

Rejestrator Windows ACPI jest trwale włączony dla globalnej sesji śledzenia. Komunikaty śledzenia z tego rejestratora są wyświetlane w dzienniku śledzenia.

Jeśli standardowa sesja śledzenia rozpoczyna się, gdy sterownik loguje się do sesji Global Logger, sterownik przełącza się i zaczyna rejestrować w standardowej sesji śledzenia.

Globalne wpisy rejestru loggera

W poniższej tabeli przedstawiono wpisy rejestru, które konfigurują sesję globalnego rejestratora. Te wpisy znajdują się w podkluczu HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger . Wymagany jest tylko wpis Start .

Oprócz wpisów rejestru w tej tabeli można również dodać podklucz ControlGUID w podkluczu GlobalLogger , aby reprezentować dostawcę śledzenia, takiego jak sterownik, który rejestruje się w globalnej sesji śledzenia rejestratora. Aby uzyskać informacje, zobacz Rejestrowanie w globalnej sesji rejestratora.

Wpis Typ danych Opis

Rozpocznij

REG_DWORD

Po ustawieniu wartości 1 (włączonej) sesja globalna rejestratora rozpoczyna się przy następnym uruchomieniu systemu.

0 = off, 1=on

RozmiarBufora

REG_DWORD

Określa rozmiar każdego buforu (w KB). Wartość domyślna to 0x40 (64 KB).

TypZegara

REG_DWORD

Określa czasomierz używany do śledzenia sygnatur czasowych komunikatów.

Począwszy od systemu Windows Vista, wartość domyślna to 1. W systemach operacyjnych wcześniejszych niż Windows Vista wartość domyślna to 2.

1 = Wartość licznika wydajności (wysoka rozdzielczość)

2 = Czasomierz systemowy

3 = zegar cyklu procesora CPU

EnableKernelFlags

REG_BINARY

Konwertuje sesję globalnego rejestratora na sesję śledzenia rejestratora jądra NT oraz określa zdarzenia uwzględnione w śledzeniu jądra.

Aby uzyskać informacje, zobacz globalna sesja rejestratora czasu rozruchu.

FileCounter

REG_DWORD

Przechowuje liczbę plików dziennika śledzenia zdarzeń generowanych przez sesje globalnego rejestratora.

System zwiększa tę wartość, dopóki nie osiągnie wartości FileMax. Następnie resetuje wartość na 0.

Ten licznik uniemożliwia systemowi zastępowanie pliku dziennika śledzenia globalnego rejestratora.

FileMax

REG_DWORD

Określa maksymalną liczbę plików dziennika śledzenia zdarzeń dozwolonych w systemie.

Gdy liczba dzienników śledzenia osiągnie określoną wartość maksymalną, system zaczyna zastępować dzienniki, począwszy od najstarszego.

Wartość domyślna to 0, co oznacza, że nie ma maksymalnej wartości.

NazwaPliku

REG_SZ

Ścieżka (opcjonalnie) i nazwa pliku dziennika śledzenia zdarzeń. Wartość domyślna to %SystemRoot%\System32\LogFiles\WMI\trace.log.

FlushTimer

REG_DWORD

Określa, jak często (w sekundach) bufory śledzenia są wymuszone do opróżniania. To wymuszone opróżnianie jest dodatkiem do automatycznego opróżniania, występującego za każdym razem, gdy bufor jest pełny, oraz gdy sesja śledzenia się zakończy.

Wartość domyślna to 0. Domyślnie bufory są opróżniane tylko wtedy, gdy są pełne.

Minimalny czas opróżniania to 1 sekunda.

LogFileMode

REG_DWORD

Określa opcje sesji dziennika.

Obsługiwane tylko w systemie Windows Vista i nowszych wersjach systemu Windows.

maximumBuffers

REG_DWORD

Określa maksymalną liczbę buforów, którą można przydzielić dla sesji. Wartość domyślna to 0x19 (25).

MaximumFileSize

REG_DWORD

Określa maksymalny rozmiar pliku dziennika śledzenia zdarzeń. Domyślnie nie ma maksymalnego rozmiaru pliku.

MinimumBuffers

REG_DWORD

Określa liczbę buforów przydzielonych podczas uruchamiania sesji. Wartość domyślna to 0x3.

Status

REG_DWORD

Przechowuje kod powrotny z próby uruchomienia globalnej sesji śledzenia rejestratora.

Jeśli nie można uruchomić sesji, wartość tego wpisu to kod błędu Win32. Jeśli sesja została uruchomiona, wartość tego wpisu jest ERROR_SUCCESS.

Te wpisy rejestru, które tworzysz, pozostają w rejestrze i obowiązują do momentu ich usunięcia lub zmiany ich wartości. W związku z tym po uruchomieniu sesji globalnego rejestratora użyj polecenia tracelog -remove GlobalLogger , aby ustawić wartość wpisu Start na 0 i usunąć inne globalne wpisy rejestru rejestratora. W przeciwnym razie sesja globalna rejestratora jest uruchamiana za każdym razem, gdy ponownie uruchomisz komputer, a wynikowy plik dziennika może być bardzo duży.

Stałe trybu rejestrowania

W poniższej tabeli przedstawiono prawidłowe wartości wpisu rejestru LogFileMode w podkluczu HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger . Ten wpis służy do ustawiania opcji sesji śledzenia globalnego rejestratora, w tym dla sesji śledzenia w czasie rzeczywistym, sesji śledzenia prywatnego, rejestrowania cyklicznego i buforowania (bez dziennika). Ten wpis rejestru jest obsługiwany tylko w systemie Windows Vista i nowszych wersjach systemu Windows.

Ten wpis rejestru odpowiada członkowi LogFileMode struktury EVENT_TRACE_PROPERTIES. Jej wartości odpowiadają stałym trybowi rejestrowania. Struktura EVENT_TRACE_PROPERTIES i stałe trybu rejestrowania są opisane w dokumentacji zestawu Microsoft Windows SDK.

Ta tabela jest tutaj, aby przedstawić wartości stałych w systemie szesnastkowym. Użyj tych wartości lub sumy tych wartości, aby reprezentować stałą we wpisie rejestru LogFileMode .

Wartość Stały Opis

0x0

EVENT_TRACE_FILE_MODE_NONE

Nie są tworzone żadne pliki dziennika śledzenia zdarzeń.

0x1

Tryb pliku śledzenia zdarzeń – sekwencyjny

Pliki dziennika śledzenia zdarzeń są sekwencyjne.

0x2

Tryb pliku śladu zdarzeń - cyrkulacja

Pliki dziennika śledzenia zdarzeń są cykliczne.

0x4

TRYB_DODAWANIA_PLIKU_ŚLADOWEGO_ZDARZEŃ

Dołączanie komunikatów śledzenia do istniejącego pliku dziennika. Ten tryb jest prawidłowy tylko w przypadku plików sekwencyjnych.

0x8

Tryb_Pliku_Sladu_Zdarzen_NowyPlik

Utwórz nowy plik dziennika śledzenia zdarzeń za każdym razem, gdy istniejący plik osiągnie wartość wpisu MaximumFileSize (zobacz tabelę powyżej).

0x20

EVENT_TRACE_FILE_MODE_PREALLOCATE

Rezerwuje miejsce dla pliku dziennika śledzenia zdarzeń.

Prawidłowe tylko w połączeniu z EVENT_TRACE_FILE_MODE_SEQUENTIAL lub EVENT_TRACE_FILE_MODE_CIRCULAR, i nieprawidłowe w połączeniu z EVENT_TRACE_FILE_MODE_NEWFILE.

0x40

Moduł śledzenia zdarzeń w trybie nieprzerywalnym (EVENT_TRACE_NONSTOPPABLE_MODE)

Wywołanie metody StopTrace nie zatrzymuje sesji śledzenia.

Ta funkcja uniemożliwia użytkownikom zatrzymywanie sesji śledzenia, których system wymaga do diagnozowania i dostrajania.

0x100

EVENT_TRACE_REAL_TIME_MODE

Określa sesję śledzenia w czasie rzeczywistym.

0x200

Tryb_opóźnionego_otwierania_pliku_EVENT_TRACE

Tylko do użytku wewnętrznego.

0x400

Tryb buforowania śladu zdarzeń

Zdarzenia są zachowywane w buforach. Nigdy nie są zapisywane do pliku dziennika ani dostarczane do odbiorcy danych śledzenia.

0x800

EVENT_TRACE_PRIVATE_LOGGER_MODE

Określa prywatną sesję śledzenia. Ta flaga jest nieprawidłowa dla sesji śledzenia Global Logger.

0x1000

EVENT_TRACE_ADD_HEADER_MODE

Tylko do użytku wewnętrznego.

0x2000

EVENT_TRACE_USE_KBYTES_FOR_SIZE

Zinterpretuj wartość MaximumFileSize w KB, a nie MB.

0x4000

EVENT_TRACE_USE_GLOBAL_SEQUENCE

Generuje globalne numery sekwencji dla komunikatów śledzenia. Te liczby są unikatowe dla wszystkich sesji śledzenia na komputerze.

Domyślnie komunikaty śledzenia nie mają żadnych numerów sekwencji.

0x8000

EVENT_TRACE_USE_LOCAL_SEQUENCE

Generuje lokalne numery sekwencji dla komunikatów śledzenia. Te liczby są unikatowe w ramach sesji śledzenia.

Domyślnie komunikaty śledzenia nie mają żadnych numerów sekwencji.

0x10000

EVENT_TRACE_RELOG_MODE

Tylko do użytku wewnętrznego.

0x80000

EVENT_TRACE_KD_FILTER_MODE

Przekierowuje komunikaty śledzenia do debugera jądra i ustawia rozmiar buforu śledzenia na 3 KB, maksymalny rozmiar buforu dla debugera.

0x1000000

EVENT_TRACE_MODE_RESERVED

Nieważna dla sesji śledzenia Global Logger.

0x01000000

EVENT_TRACE_USE_PAGED_MEMORY

Przydziel bufory sesji śledzenia z pamięci stronicowalnej. Domyślnie bufory są przydzielane z pamięci niestronicowalnej.