| Предыдущий | Следующий |
| 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, скопированный в конфигурацию источника. Сохраните первый вызов, завершившийся ошибкой, и идентификатор объекта до того, как более поздняя ошибка интерфейса скроет исходный результат.
Как интерпретировать следующее измерение
- Зафиксируйте
0xC00D1B76, он, версию Encoder и точный вызов API или обращение к свойству, вернувшее он. - Экспортируйте текущую конфигурацию
.wmeили.prx, затем зафиксируйте исходную строку CLSID, разобранный GUID, представление реестра, разрядность процесса и результат CoCreateInstance. - Проверяйте именно обнаружение и активацию модуля Encoder, не меняя одновременно источник, профиль и выходной приёмник.
- Проведите одно контролируемое сравнение: сохраните допустимый GUID и зарегистрируйте требуемый модуль с разрядностью, соответствующей процессу Encoder.
- После изменения пересоздайте соответствующий объект Encoder; существующий граф может сохранять ранее выбранный COM-компонент или состояние его активации.
Осторожно интерпретируйте соседние результаты
| Результат | Почему это другая граница |
|---|---|
NS_E_NO_VALID_SOURCE_PLUGIN | выбор или активация модуля источника, способного открыть настроенный вход |
NS_E_CODEC_UNAVAILABLE | активация профиля, когда один или несколько указанных кодеков невозможно создать |
NS_E_TRANSFORM_PLUGIN_NOT_FOUND | не найден или не активируется модуль преобразования, указанный сеансом |
Устранение и проверка
Исправьте CLSID в конфигурации и зарегистрируйте требуемый модуль с разрядностью, соответствующей процессу Encoder. Затем пересоздайте затронутую группу источников, профиль или выходной объект и повторите исходную операцию: ошибка активации COM-класса больше не должна возникать.
Не регистрируйте загруженные DLL вслепую; сохраните исходное сопоставление CLSID и проверьте происхождение DLL, разрядность и поддержку интерфейса в сеансе, который возвращает он.
Ссылки для него — диагностическая граница
- Получение настроенного входа кодировщика.
- Подготовка группы источников к кодированию.
- Сохранение конфигурации Windows Media Encoder.
- проверку формата видеокомпрессора ICCompressQuery.
Нужно найти другой код? Найти другой код состояния или ошибки.
