| Предыдущий | Следующий |
| NS_E_WMP_PATH_ALREADY_IN_LIBRARY | NS_E_WMP_HME_INVALIDOBJECTID |
NS_E_WMP_FILESCANALREADYSTARTED
Как классифицировать этот результат WMP
0xC00D0FBE соответствует NS_E_WMP_FILESCANALREADYSTARTED. Практический смысл результата — в медиатеке уже выполняется операция сканирования файлов в библиотеке и базе мультимедиа Windows Media Player; состояние создаёт библиотечный уровень, который сохраняет пути мультимедиа, создаёт объекты Media, сканирует папки, разрешает идентификаторы объектов и координирует запросы общей библиотеки.
Для дополнительной проверки зафиксируйте корневые каталоги сканирования, время запуска, прогресс и вызывающую сторону, пытающуюся начать второе сканирование; это полезнее переустановки проигрывателя или одновременного изменения нескольких несвязанных настроек.
Как работает этот уровень
Уже запущенное сканирование нужно отделять от общего сбоя WMP: добавление элемента в медиатеку не перемещает сам файл, а запись медиатеки может сохраниться после недоступности пути или общего объекта. Кроме того, запросы сканирования, поиска и Home Media Experience имеют состояние, поэтому устаревшие идентификаторы и перекрывающиеся операции следует отличать от ошибок формата файла.
Характерный случай уже запущенного сканирования: Два действия интерфейса запускают перекрывающиеся сканирования одних и тех же отслеживаемых каталогов. Пример локализует только компонент, сформировавший ошибку.
Что зафиксировать до повторной попытки
Сохраните первое появление исходного HRESULT до того, как повтор или резервный путь изменит диагностические данные. Зафиксируйте одно согласованное поколение объекта:
| Поле | Что записать |
|---|---|
| Решающая проверка | Зафиксируйте корневые каталоги сканирования, время запуска, прогресс и вызывающую сторону, пытающуюся начать второе сканирование |
| Идентичность артефакта | поколение сканирования/поиска и запрос, который его заменил, для этого воспроизведения |
| Состояние среды выполнения | Первый HRESULT медиатеки или файловой системы до обобщающего результата уровня проигрывателя |
| Ответственный объект | тип библиотеки, идентификатор базы данных и профиль пользователя, которому принадлежит операция, для этого воспроизведения |
| Результат нижнего уровня | канонический локальный/UNC/URL путь и идентификатор файла для этого воспроизведения |
| Корреляция | ID объекта Media или ID контейнера/элемента HME для этого воспроизведения |
Записывайте в журнал пути, хэши, идентификаторы, смещения и HRESULT. Не включайте в журналы секретные и не относящиеся к сбою данные.
Почему важно символьное имя
| Результат | Другая граница |
|---|---|
NS_E_WMP_HME_INVALIDOBJECTID | идентификатор объекта Home Media Experience больше не разрешается в текущем представлении общей библиотеки |
NS_E_WMP_HME_NOTSEARCHABLEFORITEMS | Выбранный контейнер HME не объявляет поддержку поиска элементов |
NS_E_WMP_HME_STALEREQUEST | Запрос HME относится к более старому состоянию библиотеки или навигации |
Если после этого появляется более общее сообщение «не удаётся воспроизвести», «не удаётся загрузить» или «операция завершилась ошибкой», сохраните более раннее событие. Последующая ошибка оболочки может быть вторичной.
Целевая последовательность диагностики
- Найдите первый компонент, вернувший исходный HRESULT, и пометьте это событие как данную границу.
- Сохраните входные данные и идентичность объекта сбойной операции до того, как резервный путь или очистка WMP изменит состояние.
- Восстановите непосредственно предшествовавшее успешное состояние и определите вызов или событие, после которого возник сбой.
- Проведите проверку для этого кода: зафиксируйте корневые каталоги сканирования, время запуска, прогресс и вызывающую сторону, пытающуюся начать второе сканирование.
- Внесите минимальное исправление: дождитесь завершения текущего сканирования либо отмените его перед запуском новой операции, затем повторите исходный вызов.
Исправьте условие, вызвавшее результат
Устраняйте NS_E_WMP_FILESCANALREADYSTARTED где формируется это состояние: дождитесь завершения текущего сканирования либо отмените его перед запуском новой операции. После исправления перезагрузите или пересоздайте владеющий объект, чтобы закэшированное состояние ошибки не исказило повторную проверку.
- Не удаляйте всю медиабазу до экспорта идентификаторов и путей сбойных объектов: это может уничтожить артефакт или состояние, необходимые для объяснения исходного результата.
- Не считайте успешное открытие файла доказательством актуальности записи медиатеки и представления общего доступа; это может заменить исходный HRESULT вторичной ошибкой другого уровня.
Регрессионная проверка
Повторите действие, вернувшее исходный HRESULT, и убедитесь, что тот же объект проходит прежнюю контрольную точку. Успех означает достижение следующего ожидаемого состояния загрузки, разбора, списка воспроизведения, управления или воспроизведения, а не простое исчезновение сообщения.
Что искать в трассировках
Используйте NS_E_WMP_FILESCANALREADYSTARTED, 0xC00D0FBE и символическую фразу вместе в трассировке. Сопоставляйте их с API и идентификатором объекта.
Технические ссылки
- Программный доступ к библиотеке — нормативный или платформенный материал для этого результата.
- Объект MediaCollection — контекст API или формата для этого результата.
- Метод MediaCollection. add — документация, используемая для определения границы-источника этого результата.
- Обработка ошибок в объектной модели WMP
Нужно найти другой код? Найти другой код состояния или ошибки.
