| Предыдущий | Следующий |
| NS_E_INVALID_EDL | NS_E_CODEC_DMO_ERROR |
NS_E_DATA_UNIT_EXTENSION_TOO_LARGE
NS_E_DATA_UNIT_EXTENSION_TOO_LARGE: данные, граница и повторная проверка
Практический смысл NS_E_DATA_UNIT_EXTENSION_TOO_LARGE (0xC00D0BD9) состоит не в том, что «обработка мультимедиа завершилась ошибкой», а в том, что данные расширения отдельного образца превышают размер, который можно прикрепить к этому образцу. Это локализует сбой на проверке медиаформата, связанной со слишком большим расширением единицы данных, и определяет сведения, которые нужно собрать до того, как повторная попытка изменит состояние.
В диагностике слишком большого расширения единицы данных Windows Media Format разделяет профиль сжатого потока, исходный формат входных данных и декодированный выходной формат, выбранный объектом чтения. Затем объект записи пакетирует образцы, применяет атрибуты и необязательные расширения единиц данных, поэтому сбой на одной границе сам по себе не доказывает, что контейнер ASF не читается. При NS_E_DATA_UNIT_EXTENSION_TOO_LARGE сохраните самый ранний низкоуровневый результат: оболочки могут сопоставлять одному HRESULT несколько разных причин на этой контрольной точке.
Данные профиля и образцов
| Что сохранить | Как это помогает выделить NS_E_DATA_UNIT_EXTENSION_TOO_LARGE |
|---|---|
| Ответственный вызов | Запишите метод API, идентификатор объекта, поток или обратный вызов и метку времени проверки медиаформата, связанной со слишком большим расширением единицы данных. |
| Решающие значения | Объект чтения или записи, номера потока и входа, идентификатор профиля, временные метки образцов, размеры буферов, а также первый обратный вызов или вызов SDK, вернувший код при контролируемой повторной проверке. |
| Поколение объекта | Отметьте, когда были созданы объект чтения, объект записи, граф, объект URL, потоковый сеанс или поставщик метаданных; устаревшее состояние может повторно вызвать NS_E_DATA_UNIT_EXTENSION_TOO_LARGE после изменения конфигурации. |
| Первый вложенный результат | Сохраните самый ранний статус кодека, COM, сокета, DNS, анализатора или поставщика до NS_E_DATA_UNIT_EXTENSION_TOO_LARGE; более поздние сообщения интерфейса менее конкретны. |
| Случай для сравнения | Используйте заведомо исправный ресурс, который проходит ту же проверку медиаформата, изменив только отклонённое предварительное условие. |
Анатомия сбоя
Проверка медиаформата достигается, когда данные расширения отдельного образца превышают размер, который можно прикрепить к этому образцу. После NS_E_DATA_UNIT_EXTENSION_TOO_LARGE вызывающая сторона не должна предполагать, что следующий фильтр, пакет, сеанс или состояние метаданных уже существует.
В качестве отрицательного контроля откройте то же содержимое с минимальной конфигурацией объекта чтения или записи и добавляйте спорный параметр только после успешной базовой проверки. Если после изменения размера расширения появляется другой HRESULT, ограничение этого образца уже не блокирует обработку; исследуйте следующую границу отдельно.
Близкие результаты не взаимозаменяемы
Главное различие: этот результат относится к обработке формата, профиля или образца, а не только к разрешению имени файла или сетевого адреса.
| Близкий HRESULT | Как его сравнивать |
|---|---|
NS_E_ATTRIBUTE_NOT_ALLOWED | Сравните ответственный API и первое отклонённое значение; это соседняя контрольная точка, а не обязательно та же причина, что и у NS_E_DATA_UNIT_EXTENSION_TOO_LARGE. |
NS_E_INVALID_EDL | По состоянию объекта и порядку операций определите, какой код является первичным, если оба появляются в одной трассировке диагностики слишком большого расширения единицы данных. |
NS_E_CODEC_DMO_ERROR | Сохраните этот результат отдельно, если он появляется только после устранения условия NS_E_DATA_UNIT_EXTENSION_TOO_LARGE. |
Контролируемая проверка медиаформата
- Запишите
0xC00D0BD9,NS_E_DATA_UNIT_EXTENSION_TOO_LARGE, точную операцию и время первого сбоя на контрольной точке слишком большого расширения единицы данных. - Сохраните объект чтения или записи, номера потока и входа, идентификатор профиля, временные метки образцов, размеры буферов и первый обратный вызов или вызов SDK, вернувший код.
- Не используйте повторно граф, сеанс, объект чтения или метаданных, созданный до изменения соответствующей конфигурации или ресурса.
- Выполните одну изолированную проверку: откройте то же содержимое с минимальной конфигурацией объекта чтения или записи и добавьте спорный параметр только после успешной базовой проверки.
- Повторите проверку через тот же API и тот же протокольный путь; другой проигрыватель или локальная копия полезны только для сравнения и не доказывают исправление этой проверки медиаформата.
- Подтвердите ожидаемое следующее состояние и сохраните любой новый HRESULT как отдельный результат последующего этапа.
Как интерпретировать следующий HRESULT
| Результат повторной проверки | Толкование для NS_E_DATA_UNIT_EXTENSION_TOO_LARGE |
|---|---|
| Тот же вызов по-прежнему возвращает код | Значения, управляющие проверкой медиаформата, не изменились, либо вызывающая сторона всё ещё использует объект предыдущего поколения. |
| Новый объект работает успешно | На NS_E_DATA_UNIT_EXTENSION_TOO_LARGE повлияло время жизни или кэшированное состояние; исправьте пересоздание объекта вместо применения обходного решения ко всей системе. |
| Вызов доходит до другого HRESULT | Граница проверки слишком большого расширения единицы данных пройдена. Разбирайте новый код в контексте компонента, который теперь получил образец или связанные с ним метаданные. |
| Ошибка возникает только для одного ресурса | Данные указывают на состояние конкретного содержимого, URL, точки публикации, потока, атрибута или объекта, а не на общий отказ. |
Действия, вводящие в заблуждение
- Одновременное изменение нескольких параметров профиля и кодека скрывает первое несовместимое поле до завершения расследования.
- Не стирайте данные о первом появлении
NS_E_DATA_UNIT_EXTENSION_TOO_LARGEмногократными повторами: обратные вызовы и переподключения могут заменить полезное состояние более поздней ошибкой оболочки. - При передаче материалов для анализа удаляйте учётные данные, защищённое содержимое и закрытые части URL. Для воспроизведения достаточно обезличенных идентификаторов, размеров, хэшей и необходимых полей протокола.
Технические ссылки
- Обзор Windows Media Format SDK
- Входные, потоковые и выходные форматы
- Профили
- Объекты Windows Media SDK
- Типы расширений образцов
- Реестр HRESULT Microsoft
Считайте NS_E_DATA_UNIT_EXTENSION_TOO_LARGE устранённой только после прохождения этой контрольной точки тем же путём API; успех в другом проигрывателе или с кэшированной копией является лишь дополнительным подтверждением.
Нужно найти другой код? Найти другой код состояния или ошибки.