Что означает код HRESULT 0xC00D10CC (NS_E_NEED_CORE_REFERENCE)?

 
Предыдущий Следующий
NS_E_WMPOCXGRAPH_IE_DISALLOWS_ACTIVEX_CONTROLS NS_E_MEDIACD_READ_ERROR

NS_E_NEED_CORE_REFERENCE

Диагностика NS_E_NEED_CORE_REFERENCE в настройках Player или playback graph

NS_E_NEED_CORE_REFERENCE (0xC00D10CC) возвращается, когда метод объектной модели вызван без действующей ссылки на владеющий core-объект Windows Media Player.

Отделите конфигурацию Network object, возможности graph, graphics presentation, выбор stream и владение COM до изменения воспроизводимого содержимого. Здесь решающая граница — метод объектной модели вызван без действующей ссылки на владеющий core-объект Windows Media Player. Этот результат наиболее полезен как контрольная точка Player, а не как рекомендация переустановить всё.

Граница конфигурации или графа

AllStat уже предоставляет стандартное пользовательское описание для него; этот custom block вместо этого выделяет дополнительную техническую границу. Более ранний успех поиска файла, network connection, создания parser или graph не доказывает, что последующая этот результат операция допустима.

Контрольная точка этого случая: идентичность COM interface, жизненный цикл Player, apartment/thread, последовательность shutdown и дочерний объект, переживший владельца. Контролируемое сравнение для него таково: получите дочерний interface из заново созданного объекта Player и вызовите его до освобождения корневой ссылки.

Ближайшее различие: NS_E_WMPOCX_NO_ACTIVE_CORE означает, что control не может обратиться к активному core; этот результат может быть вызван временем жизни объекта, удерживаемого вызывающей стороной.

Состояние, которое нужно зафиксировать до изменения настроек

Что зафиксироватьПочему это важно для него
Объект или ресурсидентичность COM interface, жизненный цикл Player, apartment/thread, последовательность shutdown и дочерний объект, переживший владельца
Снимок состоянияЗафиксируйте openState/playState Player или фазу операции, идентификатор объекта и точную временную метку возврата этот результат.
Первый результат нижнего уровняСохраните самый ранний результат Win32, Winsock, COM, parser, codec, DRM или device, появившийся до него.
Данные для сравненияИспользуйте один заведомо исправный случай, проходящий тот же API, protocol и component path при изменении только отклонённого предварительного условия.

Проверка с изменением одной переменной

  1. Зафиксируйте 0xC00D10CC, он, точный method или command и время первого сбоя.
  2. Сохраните идентичность COM interface, жизненный цикл Player, apartment/thread, последовательность shutdown и дочерний объект, переживший владельца.
  3. Выполните одно изолированное сравнение: получите дочерний interface из заново созданного объекта Player и вызовите его до освобождения корневой ссылки.
  4. Повторите original Player path after он и рассматривайте любой новый HRESULT как последующий результат.
  5. подтвердите ожидаемый переход состояния, а не только исчезновение диалога.

Интерпретация следующего состояния

Результат повторной проверкиИнтерпретация
Тот же он на том же объектеУправляющее состояние или значение не изменилось либо caller повторно использует объект, созданный до соответствующего изменения.
Новый объект работает успешноНа он повлияли lifetime, cached configuration или устаревшее состояние playlist/graph.
Появляется более поздний HRESULTОтклонённое условие — метод объектной модели вызван без действующей ссылки на владеющий core-объект Windows Media Player — устранено для него; диагностируйте новый код на его собственном уровне.
Сбой возникает только у одного item или endpointДанные указывают на специфичное для ресурса состояние data, rights, routing или device, а не на общий сбой Player.

Действия, скрывающие причину

  • повторная регистрация всех media DLL до проверки владения COM.
  • Не отбрасывайте первое он возникновение многократными вызовами Play, open, save или retry; более поздние события могут заменить исходное состояние.
  • не публикуйте credentials, private URLs, license material или полные headers защищённого содержимого; сохраняйте только редактированные identifiers, lengths, hashes и protocol fields.

Технические ссылки

Закрыть он только когда исходная операция проходит эту границу и достигает ожидаемого следующего состояния Player.


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