| Предыдущий | Следующий |
| NS_E_WMP_STREAMING_RECORDING_NOT_ALLOWED | NS_E_NEED_TO_ASK_USER |
NS_E_WMP_PLUGINDLL_NOTFOUND
На каком этапе остановился Player
Windows Media Player сообщает, что NS_E_WMP_PLUGINDLL_NOTFOUND (0xC00D0FD9) возвращается, когда проигрыватель не может найти DLL, зарегистрированную для выбранного подключаемого модуля. Этот результат формируется XML-загрузчиком обложек, который открывает пакет, находит .wms, создаёт представления и элементы управления, применяет атрибуты и подключает обработчики событий.
Для дополнительной проверки сохраните CLSID модуля, зарегистрированный путь, архитектуру процесса и состояние файла/подписи; это полезнее переустановки проигрывателя или одновременного изменения нескольких несвязанных настроек.
Данные, различающие причины
Сохраните первое появление исходного HRESULT до того, как повторная попытка или резервная обработка изменит данные об отсутствующей DLL. Зафиксируйте одно согласованное поколение объекта:
| Поле | Что записать |
|---|---|
| Решающая проверка | Сохраните CLSID модуля, зарегистрированный путь, архитектуру процесса и состояние файла/подписи |
| Идентичность артефакта | объявление THEME/version и currentViewID для этого воспроизведения |
| Состояние среды выполнения | тип элемента управления, ID объекта и отношение родитель/дочерний элемент для этого воспроизведения |
| Ответственный объект | путь ресурса, декодированные размеры и атрибуты прозрачности/сопоставления для этого воспроизведения |
| Результат нижнего уровня | имя события, первый обработчик и любое повторное объявление обработчика для этого воспроизведения |
| Корреляция | путь к архиву обложки, список его файлов и выбранное определение .wms для этого воспроизведения |
Записывайте в журнал пути, хэши, идентификаторы, смещения и HRESULT. Не включайте в журналы секретные и не относящиеся к сбою данные.
Сопутствующее состояние WMP
Пакет обложки объединяет XML-описание с изображениями и скриптами; целостность архива, корректность схемы и создание объектов во время выполнения проверяются отдельно. Свойства элементов управления оцениваются после базового разбора XML.
Показательный случай: Реестр указывает на DLL, удалённую при неполной деинсталляции. Пример локализует только компонент, сформировавший ошибку.
Не путайте с близкими результатами
| Результат | Другая граница |
|---|---|
NS_E_WMP_UI_SUBCONTROLSNOTSUPPORTED | обложка объявляет дочерние элементы управления внутри типа, который не поддерживает подэлементы |
NS_E_WMP_UI_VERSIONMISMATCH | обложке требуется версия движка интерфейса, отличная от установленной среды выполнения обложек WMP |
NS_E_WMP_UI_NOTATHEMEFILE | XML читается, но не определяет документ THEME WMP |
Если после этого появляется более общее сообщение «не удаётся воспроизвести», «не удаётся загрузить» или «операция завершилась ошибкой», сохраните более раннее событие. Последующая ошибка оболочки может быть вторичной.
Порядок расследования
- Сохраните
0xC00D0FD9, контекст ErrorItem и поколение объекта, участвовавшего в сбойной операции. - Сравните сбойный артефакт с заведомо исправным, отличающимся только подозреваемым свойством.
- Разделяйте получение данных, разбор, построение объекта, воспроизведение и сохранение состояния, пока не станет ясно, какой компонент сформировал ошибку.
- Подтвердите причину напрямую: сохраните CLSID модуля, зарегистрированный путь, архитектуру процесса и состояние файла/подписи.
- После восстановления установки/регистрации модуля либо удаления устаревшего пункта меню пересоздайте владеющий объект WMP и убедитесь, что новая операция завершается.
Проверка после исправления
Сохраните один тестовый пример, воспроизводящий 0xC00D0FD9 , и один исправленный пример, отличающийся только найденным предусловием. Исправление подтверждено, когда требуемая операция завершается успешно и результат не заменяется соседним HRESULT WMP.
Что должно измениться при реальном исправлении
Исправьте исходное условие, а не маскируйте симптом: восстановите установку/регистрацию модуля либо удалите устаревший пункт меню. Повторная попытка имеет смысл только после изменения этого условия.
- Не переименовывайте произвольный XML в .wms и не перепаковывайте обложку без сохранения относительных путей ресурсов; это может уничтожить объект или состояние, необходимые для объяснения исходного результата.
- Не редактируйте сразу несколько элементов управления до выявления первой ошибки схемы или построения; иначе исходный HRESULT может быть заменён вторичной ошибкой другого уровня.
Практическое примечание для этого кода
Используйте NS_E_WMP_PLUGINDLL_NOTFOUND, 0xC00D0FD9 и символическую фразу вместе в трассировке. Сопоставляйте их с API и идентификатором объекта.
Технические ссылки
- Обложки Windows Media Player — контекст API или формата для этого результата.
- Структура файла описания обложки — документация, используемая для определения границы-источника этого результата.
- Структура XML описания обложки — нормативный или платформенный материал для этого результата.
- Файлы обложек и содержимое пакета
Нужно найти другой код? Найти другой код состояния или ошибки.
