Что означает код HRESULT 0xC00D1267 (NS_E_BKGDOWNLOAD_CALLFUNCENDED)?

 
Предыдущий Следующий
NS_E_BKGDOWNLOAD_CALLFUNCTIMEOUT NS_E_BKGDOWNLOAD_WMDUNPACKFAILED

NS_E_BKGDOWNLOAD_CALLFUNCENDED

Где этот результат возникает в рабочем процессе Player

NS_E_BKGDOWNLOAD_CALLFUNCENDED (0xC00D1267) обозначает прерывание обратного вызова из-за завершения работы Player или службы загрузки. Для NS_E_BKGDOWNLOAD_CALLFUNCENDED сохраните эту границу, даже если видимое сообщение Player шире операции, которая вернула код.

Механизм

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

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

Снимок состояния

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

Как интерпретировать следующую проверку

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

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

Контролируемая последовательность диагностики

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

Близкие коды с другими владельцами

Связанный результатДругая диагностическая граница
NS_E_BKGDOWNLOAD_CALLFUNCTIMEOUTожидание обратного вызова подключаемого модуля загрузки дольше допустимого времени
NS_E_BKGDOWNLOAD_WMDUNPACKFAILEDраспаковка и проверка загруженного пакета .wmd после передачи
NS_E_BKGDOWNLOAD_CALLFUNCFAILEDвыполнение запрошенной функции подключаемого модуля, завершившейся ошибкой, не связанной с тайм-аутом

Целевое исправление

В этом случае дождитесь завершения очистки при закрытии, а после перезапуска Player возобновите или пересоздайте задание. Пересоздайте только объект, который вернул NS_E_BKGDOWNLOAD_CALLFUNCENDED и повторите исходную операцию с теми же контролируемыми входными данными.

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

Технические ссылки для NS_E_BKGDOWNLOAD_CALLFUNCENDED


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