Поделиться через


Понимание расширенной информации об ошибках

Расширенные сведения об ошибках — это массив записей, каждый из которых указывает на передачу кода ошибки через определенный уровень в системе или приложении. Если ошибка возникает на компьютере C, так как он вызывается из компьютера B, который, в свою очередь, вызывается из компьютера А, время выполнения RPC на компьютере C создает одну или несколько записей, описывающих ошибку, и передает их на компьютер B. Компьютер B может добавить одну или несколько записей в голову существующей цепочки, и передает полную цепочку В. Можно добавить одну или несколько записей и отобразить или записать сведения. По сути, расширенная цепочка ошибок представляет историю ошибки.

Расширенные сведения об ошибке не заменяют код ошибки (код состояния RPC_S_*). Независимо от того, насколько создается расширенная информация об ошибке, код ошибки остается неизменным.

Каждая расширенная запись сведений об ошибке содержит следующие сведения. Пожалуйста, смотрите RPC_EXTENDED_ERROR_INFO для более подробной информации:

  • ComputerName — это неквалифицированное DNS-имя компьютера, на котором возникла ошибка. Эта информация содержится только в записях на границах машин. Например, в описанном выше сценарии с компьютерами A, B и C имя_компьютера определяется для следующих полей:

    Запись Поле ComputerName
    Запись #1, созданная компьютером C -
    Запись #2, созданная компьютером C -
    Запись #3, созданная компьютером C C
    Запись #1, созданная компьютером B -
    Запись #2, созданная компьютером B -
    Запись #3, созданная компьютером B B
    Запись #1, созданная компьютером A -
    Запись #2, созданная компьютером A -
    Запись #3, созданная компьютером A -
    Глава цепочки  

     

  • ProcessID — идентификатор процесса процесса, создающего ошибку.

  • TimeStamp — время возникновения ошибки, выраженное в формате UTC.

  • Создание компонента — целочисленное определение кода логического компонента, создающего ошибку. В настоящее время определены следующие компоненты:

    Код Имя Описание
    1 Приложение Компонент, принадлежащий подпрограмме диспетчера для конкретного вызова RPC
    2 Время выполнения Время выполнения RPC
    3 Поставщик безопасности Поставщик услуг безопасности для этого звонка.
    4 NPFS Файловая система NPFS
    5 RDR Средство перенаправления
    6 NMP Система именованных каналов. Это может быть либо NPFS, либо RDR, но во многих случаях среда выполнения RPC не может определить, кто выполнил запрошенную операцию, и в таких случаях возвращается NMP.
    7 ИО Система ввода-вывода или драйвер, используемый системой ввода-вывода. Это может быть поставщик NPFS, RDR или Winsock.
    8 Winsock Поставщик Winsock
    9 Код Authz API авторизации.
    10 LPC Система вызова локальной процедуры.

     

  • Состояние — код ошибки, созданный или возвращенный слоем
  • DetectionLocation — уникальное число, определяющее расположение кода, в котором обнаружена ошибка. Это поле привязано к коду и изменится с версии на версию. Будет опубликован отдельный список наиболее часто встречающихся мест обнаружения.
  • Флаги, которые указывают сведения о записи. В настоящее время определены флаги EEInfoPreviousRecordsMissing и EEInfoNextRecordsMissing, соответствующие числовым значениям 1 и 2 соответственно. Если задано значение EEInfoPreviousRecordsMissing, то отсутствует одна или несколько записей до этой. Если задан параметр EEInfoNextRecordsMissing, одна или несколько записей после этой записи отсутствуют. Для описания причин, по которым записи могут отсутствовать, см. в разделе Надежность расширенной информации об ошибках.
  • До четырех параметров ошибки. Параметр ошибки — это упрощенная структура вариантов, предоставляющая дополнительные сведения об ошибке. Дополнительная информация зависит от ошибки и места ее обнаружения. Параметры могут иметь тип строки ANSI (LPSTR), строки Юникода (LPWSTR), длинное значение (long), короткое значение (short), указатель (int64) или нет.