| Предыдущий | Следующий |
| MF_S_ACTIVATE_REPLACED | MF_S_SEQUENCER_CONTEXT_CANCELED |
MF_S_SINK_NOT_FINALIZED
Что означает MF_S_SINK_NOT_FINALIZED
MF_S_SINK_NOT_FINALIZED (0x000D4A42) — Перед завершением работы приёмник не был финализирован.
Результат 0x000D4A42 пришёл из подсистемы «COM/WinRT» при работе с областью «контракт вызываемого interface, аргументы и state объекта». Для сообщения «перед завершением работы приёмник не был финализирован» практический предмет проверки — «mf, sink, не, finalized».
Что проверить и как подтвердить исправление
В первую очередь сопоставьте первый отказ с фактическими параметрами операции. Для 0x000D4A42 в сценарии «перед завершением работы приёмник не был финализирован» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.
Чтобы локализовать 0x000D4A42, соберите IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите IMFFinalizableMediaSink, IMFSinkWriter, IMFSinkWriter::Finalize. Затем для 0x000D4A42 сравните исправный и неуспешный запуск в части «mf, sink, не, finalized», меняя одно условие за раз.
Коррекция для 0x000D4A42 должна быть предметной: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Для 0x000D4A42 и сообщения «перед завершением работы приёмник не был финализирован» общий сброс допустим лишь как контроль, но не как доказательство причины.
После исправления повторите тот же вызов на прежних данных; у результата 0x000D4A42 должен измениться первый неуспешный этап, а не только последующее сообщение.
Документация для результата 0x000D4A42: BeginFinalize · IMFSinkWriter::Finalize · finalizable custom sink sample.
Нужно найти другой код? Найти другой код состояния или ошибки.