Что означает код HRESULT 0xC00D1B76 (NS_E_PLUGIN_CLSID_INVALID)?

 
Предыдущий Следующий
NS_E_INVALIDPACKETSIZE NS_E_UNSUPPORTED_ARCHIVETYPE

NS_E_PLUGIN_CLSID_INVALID

Граница сбоя в объектной модели Encoder

Практический смысл NS_E_PLUGIN_CLSID_INVALID (0xC00D1B76) не сводится к стандартному сообщению: код указывает на сбой разбора CLSID или активации COM-компонента на этапе обнаружения модуля Encoder.

Расширения источников, преобразователи и модули управления устройствами реализуются как COM-компоненты. В сеансе, возвращающем этот результат, Encoder должен разобрать CLSID, создать зарегистрированный класс, получить ожидаемый интерфейс и убедиться, что созданный компонент поддерживает выбранный источник или преобразование.

Данные, отделяющие этот код от ошибки оболочки

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

ПолеЧто сохранить
Решающие значенияисходная строка CLSID, разобранный GUID, представление реестра, разрядность процесса и результат CoCreateInstance
Объект, вернувший ошибкутекстовое и двоичное значения CLSID, путь и разрядность регистрации COM, путь, версию и подпись DLL, IID запрошенного интерфейса, схему источника или имя преобразования, HRESULT активации и результат управления доступом
Сопоставление с сеансомто же поколение группы источников, индекс аудитории, идентификатор объекта и последовательность обратных вызовов, в которой был получен этот результат
Данные нижнего уровняпервый HRESULT COM, драйвера, файловой системы или кодека, зарегистрированный до того, как Encoder сопоставил условие с этим результатом
Контролируемое сравнениезаведомо рабочий сеанс, в котором изменяется только настройка, относящаяся к границе этого HRESULT

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

НаблюдениеКак это интерпретировать
Наблюдение, подтверждающее онРешающие данные — исходная строка CLSID, разобранный GUID, представление реестра, разрядность процесса и результат CoCreateInstance. Они показывают, что сбой произошёл при разборе идентификатора или активации COM-класса в том же поколении объекта.
Наблюдение, указывающее на более ранний сбойЕсли CLSID корректен и требуемый COM-класс успешно создаётся, но источник, драйвер или операция с файлом раньше возвращает другой HRESULT, диагностировать нужно этот более ранний сбой.
Наблюдение, указывающее на более поздний сбойЕсли Encoder успешно создаёт требуемый COM-компонент, а затем завершается ошибкой кодек, архив или приёмник широковещательной передачи, это уже более поздняя граница.
Проверка после исправленияВнесите одно изолированное изменение: сохраните допустимый GUID и зарегистрируйте требуемый модуль с разрядностью, соответствующей процессу Encoder. После этого исходный вызов должен пройти этап разбора CLSID и активации COM-класса.

Практическое влияние он ограничено этапом обнаружения и активации модулей Encoder. Сам по себе он не означает повреждение входных данных, отсутствие кодеков или неисправность всей установки Windows Media. Например, причиной может быть усечённый CLSID, скопированный в конфигурацию источника. Сохраните первый вызов, завершившийся ошибкой, и идентификатор объекта до того, как более поздняя ошибка интерфейса скроет исходный результат.

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

  1. Зафиксируйте 0xC00D1B76, он, версию Encoder и точный вызов API или обращение к свойству, вернувшее он.
  2. Экспортируйте текущую конфигурацию .wme или .prx, затем зафиксируйте исходную строку CLSID, разобранный GUID, представление реестра, разрядность процесса и результат CoCreateInstance.
  3. Проверяйте именно обнаружение и активацию модуля Encoder, не меняя одновременно источник, профиль и выходной приёмник.
  4. Проведите одно контролируемое сравнение: сохраните допустимый GUID и зарегистрируйте требуемый модуль с разрядностью, соответствующей процессу Encoder.
  5. После изменения пересоздайте соответствующий объект Encoder; существующий граф может сохранять ранее выбранный COM-компонент или состояние его активации.

Осторожно интерпретируйте соседние результаты

РезультатПочему это другая граница
NS_E_NO_VALID_SOURCE_PLUGINвыбор или активация модуля источника, способного открыть настроенный вход
NS_E_CODEC_UNAVAILABLEактивация профиля, когда один или несколько указанных кодеков невозможно создать
NS_E_TRANSFORM_PLUGIN_NOT_FOUNDне найден или не активируется модуль преобразования, указанный сеансом

Устранение и проверка

Исправьте CLSID в конфигурации и зарегистрируйте требуемый модуль с разрядностью, соответствующей процессу Encoder. Затем пересоздайте затронутую группу источников, профиль или выходной объект и повторите исходную операцию: ошибка активации COM-класса больше не должна возникать.

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

Ссылки для него — диагностическая граница


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