| Предыдущий | Следующий |
| NS_E_DUPLICATE_PACKET | NS_E_INVALID_NUM_PASSES |
NS_E_SDK_BUFFERTOOSMALL
Что означает NS_E_SDK_BUFFERTOOSMALL на уровне ответственного API
Когда этот результат (0xC00D0BD4), первый заблокированный переход — выходной буфер, предоставленный вызывающей стороной, меньше размера, сообщённого SDK. На практике проверке медиаформата при недостаточном буфере SDK нужно восстанавливать по тому же URL, поток, поколение объекта и последовательности вызовов.
Формат Windows Media разделяет профиль сжатого потока, необработанный входной формат и декодированный выход объекта чтения при проверке «выходной буфер, предоставленный вызывающей стороной, меньше размера, сообщённого SDK». Объект записи затем пакетирует образцы, применяет атрибуты и необязательные блоки расширенных данных, поэтому сбой на одной границе не доказывает нечитаемость контейнера ASF при диагностике «недостаточный выходной буфер вызывающей стороны». В случае этот результат сохраняйте самый ранний результат нижнего уровня: оболочки могут сопоставлять разные причины с одним HRESULT в этой контрольной точке.
Контролируемая проверка медиаформата
- Запишите
0xC00D0BD4, этот результат, точную операцию и время первого сбоя. - При трассировке недостаточного буфера SDK сохраните запрошенное число байтов, возвращённый требуемый размер, версию структуры, размер буфера, выделенного вызывающей стороной и признак того, был ли это запрос требуемого размера или вызов для получения данных.
- Не используйте повторно граф, сеанс, объект чтения или объект метаданных, созданные до изменения соответствующей конфигурации или ресурса.
- Выполните один изолированный тест: сначала запросить требуемый размер, выделить буфер указанного размера и повторить тот же SDK вызов.
- Повторите проверку через тот же API и протокольный тракт; другой Player или локальная копия полезны только для сравнения и сами по себе не доказывают исправление исходной границы для состояния «выходной буфер, предоставленный вызывающей стороной, меньше размера, сообщённого SDK».
- Подтвердите ожидаемое следующее состояние и сохраните новый HRESULT, если он появился, как отдельный результат последующей стадии.
Что уже выполнено и где остановилась операция
До этой контрольной точки предыдущая настройка могла завершиться успешно, однако этап «выходной буфер, предоставленный вызывающей стороной, меньше размера, сообщённого SDK» не был завершён. Поэтому в журнале нужны и последний успешный вызов, и этот результат.
Целевое сравнение: сначала запросить требуемый размер, выделить буфер указанного размера и повторить тот же SDK вызов. Оно меняет спорное предварительное условие, не меняя идентичность мультимедиа и несвязанные параметры компьютера.
Данные профиля и образцы
| Зафиксируйте | Как это помогает выделить он |
|---|---|
| Ответственный вызов | Зафиксируйте метод API, идентификатор объекта, поток или обратный вызов и временную метку для контрольной точки «недостаточный выходной буфер вызывающей стороны». |
| Решающие значения | запрошенное число байтов, возвращённый требуемый размер, версия структуры, размер выделенного буфера вызывающая сторона и признак запрос размера/данные вызов до закрытия инцидента недостаточного буфера SDK |
| Поколение объекта | Отметьте время создания объекта чтения, объекта записи, графа, URL-объекта, сеанса потоковой передачи или поставщика метаданных; устаревшее состояние может повторно вызвать он после изменения конфигурации. |
| Первый вложенный результат | Сохраните самый ранний статус кодека, COM, сокета, DNS, анализатора или поставщика до него; более поздние сообщения интерфейса менее конкретны. |
| Случай для сравнения | Используйте один заведомо рабочий ресурс, проходящий ту же контрольную точку «недостаточный выходной буфер вызывающей стороны», изменив только отклонённое предварительное условие. |
Как интерпретировать следующий HRESULT
| Результат повторной проверки | Толкование для него |
|---|---|
| Тот же вызов по-прежнему возвращает код | Значения, определяющие контрольную точку «недостаточный выходной буфер вызывающей стороны», не изменились либо вызывающая сторона всё ещё использует старое поколение объекта. |
| Новый объект работает успешно | Время жизни или кэшированное состояние способствовало появлению он; исправьте пересоздание объекта вместо применения обходного решения на уровне всего компьютера. |
| Вызов доходит до другого HRESULT | Исходная граница пройдена. Диагностируйте новый код отдельно на его собственной стадии формата, графа, URL, сети или метаданных для состояния «выходной буфер, предоставленный вызывающей стороной, меньше размера, сообщённого SDK». |
| Сбой возникает только для одного ресурса | Данные указывают на состояние конкретного содержимого, URL, точки публикации, потока, атрибута или объекта, а не на общий сбой системы. |
Действия, вводящие в заблуждение
- угадывание большего буфер без учёта размер, возвращённого тем же вызовом API, при локализации недостаточного буфера SDK.
- Не стирайте данные о первом появлении он многократными повторами; обратные вызовы и повторное подключение могут заменить полезное исходное состояние более поздней ошибкой верхнего уровня.
- Не публикуйте учётные данные, материалы защищённого содержимого или полные закрытые URL. Записывайте обезличенные идентификаторы, длины, хэши и поля протокол, необходимые для воспроизведения этой контрольной точки.
Близкие результаты не взаимозаменяемы
Главное различие: Код относится к контракту размера буфера вызывающей стороны; увеличение несвязанных медиа буферы не устраняет эту границу.
| Близкий HRESULT | Как его сравнивать |
|---|---|
NS_E_LATE_PACKET | Сравните ответственный API и первое отклонённое значение: это соседняя контрольная точка, а не автоматически та же причина, что и у он. |
NS_E_DUPLICATE_PACKET | Используйте состояние объекта и порядок операций, чтобы определить, какой код является исходным, если оба появляются в одной трассировке. |
NS_E_INVALID_NUM_PASSES | Сохраните он отдельно, если он появляется только после устранения условия он. |
Технические ссылки
- Обзор Windows Media Format SDK
- Входные, потоковые и выходные форматы
- Профили
- Объекты Windows Media SDK
- Реестр HRESULT Microsoft
Сохраните трассировку после исправления, чтобы более поздний результат конвейера не был ошибочно принят за повтор этой границы на контрольной точке недостаточного буфера SDK.
Нужно найти другой код? Найти другой код состояния или ошибки.
