Что означает код HRESULT 0xC00D125E (NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB)?

 
Предыдущий Следующий
NS_E_BKGDOWNLOAD_WRONG_NO_FILES NS_E_BKGDOWNLOAD_CANCELCOMPLETEDJOB

NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB

Граница сбоя и её владелец

NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB со значением 0xC00D125E фиксирует условие вызов завершения для задания, которое уже перешло в конечное отменённое состояние. Для NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB вызов-источник и его состояние важнее для диагностики, чем более поздняя сводная ошибка Player.

Механизм возникновения

На контрольной точке NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB диспетчер загрузок Player координирует окно-владельца, подключаемый модуль, идентификатор фонового задания, временные файлы и окончательное завершение либо отмену; после передачи загруженного пакета .wmd добавляются этапы распаковки и каталогизации. Граница этой страницы — вызов завершения для задания, которое уже перешло в конечное отменённое состояние.

Для NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB получение всех сетевых байтов ещё не означает завершение задания, перемещение временного файла или успешную распаковку и каталогизацию пакета Windows Media Download. Характерный сценарий: после отмены асинхронный путь всё ещё пытается завершить то же поколение задания.

Поля трассировки, которые следует сохранить

ДанныеПочему эти данные важны: попытка завершить отменённое задание фоновой загрузки
Объект и операция, вернувшие ошибкуGUID задания и сигнатуру Player, состояние BITS и задания, ожидаемое и фактическое число файлов, удалённые и локальные имена, временный путь, запрос завершения или отмены, подключаемый модуль и обратный вызов, apartment COM, результат распаковки WMD и первый внутренний HRESULT
Решающие сведенияисторию состояний задания, источник и время отмены, вызов Complete и состояние временного файла
Идентификатор поколенияЗафиксируйте то же поколение диска, устройства, задания или операции Player, которое вернуло NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB; повторное подключение или смена носителя создаёт другой тест.
Исходный результатСохраните первый результат устройства, файловой системы, COM, кодека, DirectShow, IMAPI или BITS, полученный до того, как Player сопоставил его с NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB.
Контролируемое сравнениеПовторите исходную операцию в контролируемом сценарии, изменив только условие «попытка завершить отменённое задание фоновой загрузки», и сохраните API, входные данные и исходный HRESULT, относящиеся к состоянию «попытка завершить отменённое задание фоновой загрузки».

Что доказывает сравнение

НаблюдениеТолкование
Зафиксированные значения соответствуют границеУстраните именно исходное условие «попытка завершить отменённое задание фоновой загрузки», затем создайте новый объект операции и проверьте результат по сохранённым данным.
Сбой нижнего уровня произошёл до NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOBСохраните этот более ранний HRESULT или результат устройства, поскольку NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB может быть лишь его отображением на уровне Player.
Тот же вызов проходит после одного изолированного измененияТакое сравнение подтверждает диагноз попытка завершить отменённое задание фоновой загрузки, а не общий сбой установки.
После повторной проверки код изменился на NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOBГраница NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB пройдена; диагностируйте новый HRESULT как следующую независимую стадию.

NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB ограничивает область сбоя вызов завершения для задания, которое уже перешло в конечное отменённое состояние. Наличие NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB не доказывает общесистемный сбой мультимедиа; перед изменением не связанных компонентов Player определите операцию, которой принадлежит ошибка.

Путь принятия решения

  1. Зафиксируйте 0xC00D125E NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB, а также точную операцию Player/API и момент первого появления ошибки.
  2. Сохраните историю состояний задания, источник и время отмены, вызов Complete и состояние временного файла; сделайте это до извлечения носителя, повторного подключения устройства, отмены задания или пересоздания объекта Player.
  3. Для NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB сопоставьте результат с GUID задания и сигнатурой Player, состоянием BITS и задания, ожидаемым и фактическим числом файлов, удалёнными и локальными именами, временным путём, запросом завершения или отмены, подключаемым модулем и обратным вызовом, apartment COM, результатом распаковки WMD и первым внутренним HRESULT.
  4. Повторите исходную операцию в контролируемом сценарии, изменив только условие «попытка завершить отменённое задание фоновой загрузки», и сохраните API, входные данные и исходный HRESULT, относящиеся к состоянию «попытка завершить отменённое задание фоновой загрузки».
  5. Создайте новое поколение операции и убедитесь, что исходный вызов проходит границу попытка завершить отменённое задание фоновой загрузки.

Близкие по смыслу результаты

Связанный результатДругая диагностическая граница
NS_E_BKGDOWNLOAD_CANCELCOMPLETEDJOBвызов отмены после того, как задание уже завершено и подтверждено
NS_E_BKGDOWNLOAD_WRONG_NO_FILESпроверка списка файлов, прикреплённого к фоновому заданию Player
NS_E_BKGDOWNLOAD_NOJOBPOINTERобращение к отсутствующему или уже освобождённому интерфейсу фонового задания

Безопасное исправление

Не изменяйте и не сбрасывайте связанное состояние до сохранения следующих данных: API, состояния объекта, входных параметров и исходного HRESULT для состояния «попытка завершить отменённое задание фоновой загрузки»; иначе причина «попытка завершить отменённое задание фоновой загрузки» будет потеряна. NS_E_BKGDOWNLOAD_COMPLETECANCELLEDJOB и повторите этот вызов.

Не изменяйте и не сбрасывайте связанное состояние до сохранения следующих данных: API, состояния объекта, входных параметров и исходного HRESULT для состояния «попытка завершить отменённое задание фоновой загрузки»; иначе причина «попытка завершить отменённое задание фоновой загрузки» будет потеряна.

Исходные материалы


Нужно найти другой код? Найти другой код состояния или ошибки.