Что означает код HRESULT 0xC00D0BD5 (NS_E_INVALID_NUM_PASSES)?

 
Предыдущий Следующий
NS_E_SDK_BUFFERTOOSMALL NS_E_ATTRIBUTE_READ_ONLY

NS_E_INVALID_NUM_PASSES

Исследование NS_E_INVALID_NUM_PASSES без потери первого сбоя

NS_E_INVALID_NUM_PASSES (0xC00D0BD5) отмечает ситуацию, когда приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода. Код относится к проверке media format для invalid num passes, поэтому более позднюю ошибку network, codec или metadata нужно фиксировать отдельно, не заменяя ею исходный результат.

Windows Media Format разделяет профиль сжатого потока, необработанный входной формат и декодированный выход reader для условия «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода». Writer затем пакетирует samples, применяет attributes и необязательные расширения data units, поэтому сбой на одной границе не доказывает нечитаемость ASF-контейнера при диагностике «недопустимое число проходов». В случае NS_E_INVALID_NUM_PASSES, сохраняйте самый ранний результат нижнего уровня: оболочки могут сопоставлять разные причины с одним HRESULT в этой контрольной точке.

Где возникает сбой

К этому моменту компонент уже принял предыдущие предварительные условия, но не может пройти границу: приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода. Успешное открытие файла, разрешение имени узла или создание COM-объекта не доказывает допустимость этой последующей операции в сценарии «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода».

Наиболее показательная проверка — установить документированно поддерживаемое число проходов preprocessing для того же режима вывода и повторить ту же последовательность вызовов. Если после изменения только этого условия тот же вызов проходит дальше, данные подтверждают рассматриваемую границу на границе «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода». Если нет, вернитесь к первому вложенному результату, не расширяя исправление для состояния «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода». NS_E_INVALID_NUM_PASSES. Если этого не произошло, вернитесь к первой вложенной ошибке, а не расширяйте область исправлений при контролируемой повторной проверке invalid num passes.

Как интерпретировать следующий HRESULT

Результат повторной проверкиТолкование для NS_E_INVALID_NUM_PASSES
Тот же вызов по-прежнему возвращает этот кодЗначения, определяющие контрольную точку «недопустимое число проходов», не изменились либо вызывающая сторона всё ещё использует старое поколение объекта.
Новый объект работает успешноНа результат повлияли lifetime объекта или cached state NS_E_INVALID_NUM_PASSES; исправьте пересоздание объекта вместо обходного решения на уровне всего компьютера.
Вызов доходит до другого HRESULT для условия «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода»Исходная граница пройдена. Диагностируйте новый код отдельно на его собственной стадии format, graph, URL, network или metadata при проверке «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода».
Сбой возникает только для одного ресурсаДанные указывают на состояние конкретного content, URL, publishing point, stream, attribute или object, а не на общий outage для состояния «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода».

Данные профиля и образца

ЗафиксируйтеКак это помогает выделить NS_E_INVALID_NUM_PASSES
Вызов-владелецЗафиксируйте метод API, идентификатор объекта, thread или callback и временную метку этой контрольной точки.
Решающие значениядиапазон времени источника, номер прохода, состояние preprocessing, записи EDL в порядке источника и выбранный для потока режим вывода
Поколение объектаОтметьте время создания reader, writer, graph, URL object, streaming session или metadata provider; устаревшее состояние может повторно вызвать NS_E_INVALID_NUM_PASSES после изменения конфигурации.
Первый вложенный результатСохраните самый ранний status codec, COM, socket, DNS, parser или provider до NS_E_INVALID_NUM_PASSES; более поздние сообщения UI менее конкретны.
Случай для сравненияИспользуйте один заведомо рабочий ресурс, проходящий ту же контрольную точку, и изменяйте только отклонённое предварительное условие при проверке «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода».

Контролируемая проверка формата мультимедиа

  1. Запишите 0xC00D0BD5, NS_E_INVALID_NUM_PASSES, точную операцию и время первого сбоя.
  2. Сохраните диапазон времени источника, номер прохода, состояние preprocessing, записи EDL в порядке источника и выбранный для потока режим вывода на границе «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода».
  3. Не используйте повторно graph, session, reader или metadata object, созданные до изменения соответствующей конфигурации или ресурса для условия «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода».
  4. Выполните один изолированный тест: установить документированно поддерживаемое число проходов preprocessing для того же режима вывода и повторить ту же последовательность вызовов.
  5. Повторите проверку через тот же API и protocol path; другой Player или локальная копия полезны только как сравнение и не доказывают исправление исходной границы для условия «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода».
  6. Подтвердите ожидаемое следующее состояние и сохраните новый HRESULT как отдельный downstream result для условия «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода».

Близкие результаты не взаимозаменяемы

Основное различие: Код относится к последовательности проходов preprocessing, а не к качеству или содержимому исходных samples.

Близкий HRESULTКак его сравнивать
NS_E_DUPLICATE_PACKETСравните ответственный API и первое отклонённое значение: соседний HRESULT относится к другой контрольной точке и не обязан иметь ту же причину, что NS_E_INVALID_NUM_PASSES.
NS_E_SDK_BUFFERTOOSMALLИспользуйте состояние объекта и порядок операций, чтобы определить исходный код, если оба появляются в одной трассировке.
NS_E_ATTRIBUTE_READ_ONLYСохраните этот результат отдельно, если он появляется только после устранения условия NS_E_INVALID_NUM_PASSES.

Действия, вводящие в заблуждение

  • не меняйте одновременно несколько параметров profile и codec: это скрывает первое несовместимое поле при проверке «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода».
  • Не стирайте данные о первом появлении NS_E_INVALID_NUM_PASSES многократными повторами; callbacks и reconnect могут заменить полезное исходное состояние более поздней ошибкой оболочки.
  • Не публикуйте credentials, материалы protected content или полные private URL для условия «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода». Записывайте только обезличенные identifiers, lengths, hashes и необходимые protocol fields на границе «приложение использовало последовательность проходов preprocessing, несовместимую с режимом вывода».

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

Завершайте диагностику только после того, как исходная операция NS_E_INVALID_NUM_PASSES успешно выполняется на актуальном объекте и наблюдается ожидаемое следующее состояние.


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