Что означает код HRESULT 0xC00D1260 (NS_E_BKGDOWNLOAD_NOJOBPOINTER)?

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

NS_E_BKGDOWNLOAD_NOJOBPOINTER

Диагностический смысл помимо стандартного сообщения

Практический смысл 0xC00D1260 / NS_E_BKGDOWNLOAD_NOJOBPOINTERобращение к отсутствующему или уже освобождённому интерфейсу фонового задания. Сохраните поколение объекта и возвращённый код нижнего уровня, связанные с событием этот результат.

Почему вызов может дойти до этой точки

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

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

Матрица диагностических данных

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

Матрица решений

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

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

Минимальный эксперимент

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

Не объединяйте эту ошибку со следующими возвращённый кодами

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

Восстановление и проверка

Устраните ответственную предпосылку: повторно получите действующее задание по идентификатору либо завершите устаревший обратный вызов. Успешная повторная проверка должна пройти ту же контрольную точку nojobpointer, а не только скрыть сообщение другим путём интерфейса.

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

Авторитетная документация


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