Udostępnij przez


Zrozumienie rozszerzonych informacji o błędzie

Rozszerzone informacje o błędzie to tablica rekordów, z których każdy wskazuje przekazywanie kodu błędu za pośrednictwem określonej warstwy w systemie lub aplikacji. Jeśli na maszynie C wystąpi błąd podczas wywołania z maszyny B, która z kolei jest wywoływana z maszyny A, czas wykonywania RPC na maszynie C generuje jeden lub więcej rekordów opisujących błąd i przekazuje je do maszyny B. Maszyna B może dodać jeden lub więcej rekordów na początek istniejącego łańcucha i przekazuje pełny łańcuch do maszyny A. Maszyna A może dodać jeden lub więcej rekordów i wyświetlić lub zarejestrować informacje. Zasadniczo łańcuch błędów rozszerzonych reprezentuje historię błędu.

Rozszerzone informacje o błędzie nie zastępują kodu błędu (kod stanu RPC_S_*). Niezależnie od tego, ile lub czy są generowane rozszerzone informacje o błędzie, kod błędu pozostaje niezmieniony.

Każdy rozszerzony rekord informacji o błędzie zawiera następujące elementy. Aby uzyskać więcej informacji, zobacz RPC_EXTENDED_ERROR_INFO:

  • ComputerName — jest to niekwalifikowana nazwa DNS komputera, na którym pochodzi błąd. Tylko rekordy znajdujące się na granicach maszyny zawierają tę informację. Na przykład w scenariuszu opisanym wcześniej z maszynami A, B i C nazwa_komputera jest zdefiniowana dla następujących pól:

    Rekord Pole NazwaKomputera
    Rekord nr 1 wygenerowany przez maszynę C -
    Rekord nr 2 wygenerowany przez maszynę C -
    Rekord nr 3 wygenerowany przez maszynę C C
    Rekord nr 1 wygenerowany przez maszynę B -
    Rekord nr 2 wygenerowany przez maszynę B -
    Rekord nr 3 wygenerowany przez maszynę B B
    Rekord nr 1 wygenerowany przez maszynę A -
    Rekord nr 2 wygenerowany przez maszynę A -
    Rekord nr 3 wygenerowany przez maszynę A -
    Głowica łańcucha  

     

  • ProcessID — identyfikator procesu, który wygenerował błąd.

  • Sygnatura czasowa — godzina wystąpienia błędu wyrażona w formacie UTC.

  • Generowanie składnika — definicja kodu całkowitego składnika logicznego, który wygenerował błąd. Obecnie zdefiniowane są następujące składniki:

    Kod Nazwa Opis
    1 Aplikacja Składnik, który jest właścicielem procedury zarządzającej dla konkretnego wywołania RPC
    2 Środowisko uruchomieniowe Czas działania RPC
    3 Dostawca zabezpieczeń Dostawca zabezpieczeń dla tego połączenia.
    4 NPFS System plików NPFS
    5 RDR Przekierowywacz
    6 NMP System nazwanych potoków. Może to być NPFS lub RDR, ale w wielu przypadkach środowisko wykonawcze RPC nie wie, kto wykonał żądaną operację, i w takich przypadkach zwracany jest NMP.
    7 IO System wejścia/wyjścia lub sterownik używany przez system wejścia/wyjścia. Może to być NPFS, RDR lub dostawca Winsock.
    8 Winsock Dostawca usługi Winsock
    9 Kod Authz Interfejsy API do autoryzacji.
    10 LPC Mechanizm lokalnego wywołania procedury.

     

  • Stan — kod błędu wygenerowany lub zwrócony przez warstwę
  • DetectionLocation — unikatowy numer identyfikujący lokalizację kodu, w którym wykryto błąd. To pole jest powiązane z kodem i zmieni się z wersji na wersję. Zostanie opublikowana oddzielna lista najczęściej spotykanych lokalizacji wykrywania.
  • Flagi — flagi określające informacje o rekordzie. Obecnie zdefiniowane flagi to EEInfoPreviousRecordsMissing i EEInfoNextRecordsMissing, odpowiadające odpowiednio wartościom liczbowym 1 i 2. Jeśli EEInfoPreviousRecordsMissing jest ustawione, brakuje jednego lub więcej rekordów przed tym rekordem. Jeśli ustawiono wartość EEInfoNextRecordsMissing, brakuje co najmniej jednego rekordu po tym rekordzie. Aby uzyskać opis przyczyn braku rekordów, zobacz niezawodność rozszerzonych informacji o błędach.
  • Maksymalnie cztery parametry błędu. Parametr błędu to uproszczona struktura wariantów, która zawiera dodatkowe informacje o błędzie. Dodatkowe informacje są zależne od błędu i lokalizacji wykrywania. Parametry mogą być typu CIĄG ANSI (LPSTR), Ciąg Unicode (LPWSTR), wartość długa (długa), krótka wartość (krótka), wskaźnik (int64) lub brak.