Что означает код HRESULT 0xC00D1B71 (NS_E_NO_VALID_SOURCE_PLUGIN)?

 
Предыдущий Следующий
NS_E_NO_VALID_OUTPUT_STREAM NS_E_NO_ACTIVE_SOURCEGROUP

NS_E_NO_VALID_SOURCE_PLUGIN

Где Encoder формирует этот результат

0xC00D1B71 (NS_E_NO_VALID_SOURCE_PLUGIN) указывает на выбор или активация source plug-in, способного открыть настроенный input. Важной диагностической границей является объект Encoder, проверяющий это состояние; более поздний диалог «не удаётся начать кодирование» может скрыть более точный источник.

Расширения source, transform и device-control являются COM plug-ins в сеансе, который возвращает этот результат. На контрольной точке no valid source plugin Encoder должен разобрать CLSID, создать зарегистрированный component, получить ожидаемый interface и убедиться, что plug-in поддерживает выбранный source или transformation.

Что уже успешно выполнено

Даже зарегистрированный class может иметь неподходящую bitness, предоставлять неправильный interface или отклонять запрошенный media type в сеансе, который возвращает этот результат. В показательном случае no valid source plugin после удаления plug-in в.wme остаётся проприетарная URL scheme. Он наблюдение следует проверять на объекте-источнике, а не считать общей ошибкой кодека или операционной системы.

Какое состояние зафиксировать

ПолеЧто сохранить
Решающие значенияscheme/extension input, candidate CLSIDs, HRESULTs активации и результаты interface query
Объект, вернувший ошибкутекстовое и binary значение CLSID, path и bitness COM registration, DLL path/version/signature, IID запрошенного interface, source scheme или transform name, activation HRESULT и результат access-control
Связь с сеансомто же поколение source group, индекс audience, идентичность объекта и последовательность callback, которые привели к этому результату
Данные нижнего уровняпервый HRESULT COM, драйвера, файловой системы или кодека, зафиксированный до того, как Encoder сопоставил условие с этим результатом
Контролируемое сравнениезаведомо рабочий сеанс, в котором изменяется только настройка, относящаяся к границе этого HRESULT

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

НаблюдениеКак это интерпретировать
Наблюдение, подтверждающее онРешающие данные: scheme/extension input, candidate CLSIDs, HRESULTs активации и результаты interface query. Они подтверждают, что выбор или активация source plug-in, способного открыть настроенный input в том же поколении объекта.
Наблюдение, указывающее на более ранний сбойЗафиксированные значения удовлетворяют условию этого HRESULT, однако source, драйвер, COM activation или file operation раньше возвращает другой HRESULT.
Наблюдение, указывающее на более поздний сбойEncoder проходит эту границу (выбор или активация source plug-in, способного открыть настроенный input), но затем на следующем этапе происходит сбой codec, archive или broadcast sink.
Проверка после исправленияПримените одно изолированное изменение: установить или выбрать доверенный source plug-in, которому принадлежат scheme и media type. После этого исходный вызов должен пройти ту же контрольную точку для состояния «выбор или активация source plug-in, способного открыть настроенный input».

Практическое влияние он ограничен переходом «encoder plug-in discovery and activation», которому принадлежит условие «выбор или активация source plug-in, способного открыть настроенный input». Сам по себе он не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В показательном случае, когда после удаления plug-in в.wme остаётся проприетарная URL scheme, сохраните первый неуспешный вызов и идентификатор его объекта, чтобы более поздняя ошибка-оболочка не заменила данные о границе no valid source plugin.

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

  1. Зафиксируйте 0xC00D1B71, он, версию Encoder и точный вызов API или обращение к свойству, вернувшее он.
  2. Экспортируйте текущую конфигурацию .wme или .prx конфигурацию, затем зафиксируйте scheme/extension input, candidate CLSIDs, HRESULTs активации и результаты interface query.
  3. проверяйте предварительное условие «encoder plug-in discovery and activation», не меняя одновременно source, profile и output sink.
  4. Проведите одно контролируемое сравнение, изменяя только это условие: установить или выбрать доверенный source plug-in, которому принадлежат scheme и media type.
  5. После изменения пересоздайте соответствующий объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее недопустимое состояние.

Соседние HRESULT с другим диагностическим смыслом

РезультатПочему это другая граница
NS_E_PLUGIN_CLSID_INVALIDразбор и активация class identifier COM plug-in
NS_E_CODEC_UNAVAILABLEактивация profile, когда один или несколько указанных codecs нельзя создать
NS_E_TRANSFORM_PLUGIN_NOT_FOUNDlookup или activation не может найти transform plug-in, указанный сеансом

Исправление на правильном уровне

Целевое исправление — установить или выбрать доверенный source plug-in, которому принадлежат scheme и media type. Повтор имеет смысл только после изменения зафиксированного предварительного условия no valid source plugin.

Не регистрируйте загруженные DLL вслепую; сохраните исходное сопоставление CLSID и проверьте provenance, bitness и поддержку interface в сеансе, который возвращает он.

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


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