Что означает код HRESULT 0xC00D106B (NS_E_ASX_INVALID_REPEAT_BLOCK)?

 
Предыдущий Следующий
NS_E_ASX_INVALIDVERSION NS_E_ASX_NOTHING_TO_WRITE

NS_E_ASX_INVALID_REPEAT_BLOCK

Что означает NS_E_ASX_INVALID_REPEAT_BLOCK в списке воспроизведения Windows Media

NS_E_ASX_INVALID_REPEAT_BLOCK (0xC00D106B) возвращается, когда блок REPEAT имеет недопустимое положение, семантику счётчика или структуру дочерних элементов.

Различайте состояние объекта Playlist в памяти, разбор WPL или ASX, раскрытие вложенных списков, разрешение объектов Media и выполнение элементов, на которые имеются ссылки. Зафиксируйте, что Player уже успел выполнить, поскольку более поздние повторы часто заменяют исходные данные. Конкретное отклонённое условие: блок REPEAT имеет недопустимое положение, семантику счётчика или структуру дочерних элементов.

Граница списка воспроизведения

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

Контрольная точка этого случая: полный элемент REPEAT, значение COUNT, вложенные элементы ENTRY и позиция анализатора, в которой документ отклонён. Контролируемое сравнение для него: замените цикл одним обычным ENTRY, затем снова добавьте конечный REPEAT с одним допустимым дочерним элементом.

Ближайшее различие: NS_E_WMX_INVALID_FORMAT_OVER_NESTING относится к глубине вложенности, а не к синтаксису одного блока REPEAT.

Данные модели списка

Что сохранитьПочему это важно для него
Объект или ресурсполный элемент REPEAT, значение COUNT, вложенные элементы ENTRY и позиция анализатора, в которой документ отклонён
Снимок состоянияЗафиксируйте openState/playState Player или фазу операции, идентификатор объекта и точную временную метку возврата этот результат.
Первый результат нижнего уровняСохраните самый ранний результат Win32, Winsock, COM, анализатора, кодека, DRM или устройства, появившийся до этого результата.
Запись для сравненияИспользуйте один заведомо рабочий случай, проходящий тот же путь API, протокола и компонента с изменением только отклонённого предварительного условия.

Минимальный эксперимент со списком воспроизведения

  1. Начните с исходного вызова и запишите 0xC00D106B вместе с объектом и фазой операции.
  2. До изменения компьютера сохраните полный элемент REPEAT, значение COUNT, вложенные элементы ENTRY и позицию анализатора, в которой документ отклонён.
  3. Проведите тест с одной переменной: замените цикл одним обычным ENTRY, затем снова добавьте конечный REPEAT с одним допустимым дочерним элементом.
  4. Повторите проверку на новом объекте, если исходный был создан до изменения конфигурации, устройства или ресурса.
  5. Проверяйте ожидаемую следующую операцию, а не только первоначальное открытие или создание объекта.

Что означает результат

Результат повторной проверкиТолкование
Тот же этот результат на том же объектеОпределяющее состояние или значение не изменилось либо вызывающая сторона повторно использует объект, созданный до соответствующего изменения.
Новый объект работает успешноВремя жизни, кэшированная конфигурация или устаревшее состояние списка воспроизведения или графа способствовали он.
Появился более поздний HRESULTОтклонённое условие — блок REPEAT имеет недопустимое положение, семантику счётчика или структуру дочерних элементов — устранено для него; диагностируйте новый код на его собственном уровне.
Не работает только один элемент или конечная точкаДанные указывают на состояние конкретного ресурса, прав, маршрутизации или устройства, а не на общий сбой Player.

Действия, скрывающие причину

  • изменение медиакодеков при недопустимой управляющей структуре метафайла.
  • Не стирайте данные о первом появлении он многократными вызовами Play, open, save или retry; более поздние события могут заменить исходное состояние.
  • Не публикуйте учётные данные, закрытые URL, лицензионные материалы или полные заголовки защищённого содержимого; сохраняйте только обезличенные идентификаторы, длины, хэши и поля протокола.

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

Сохраните данные до и после исправления он, чтобы пересоздание объекта или замена содержимого не были ошибочно приняты за случайный успех повторной попытки.


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