| Предыдущий | Следующий |
| MF_E_NO_EVENTS_AVAILABLE | MF_E_END_OF_STREAM |
MF_E_INVALID_STATE_TRANSITION
Что означает MF_E_INVALID_STATE_TRANSITION
MF_E_INVALID_STATE_TRANSITION (0xC00D3E82) — Медиаисточник не может перейти из остановленного состояния в состояние паузы.
Код 0xC00D3E82 относится не ко всему компоненту «COM/WinRT», а к операции в области «контракт вызываемого interface, аргументы и state объекта». Сообщение «медиаисточник не может перейти из остановленного состояния в состояние паузы» позволяет начать с темы «mf, недопустимый, состояние, переход состояния».
Что проверить и как подтвердить исправление
Не начинайте с общего сброса компонента: проверьте допустимость и структуру входных данных первого неуспешного вызова. При 0xC00D3E82 и условии «медиаисточник не может перейти из остановленного состояния в состояние паузы» сверьте тип, размер, диапазон, маску флагов и принадлежность каждого дескриптора текущему объекту именно по контракту первого неуспешного метода.
Для воспроизведения 0xC00D3E82 сохраните IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите IMFMediaSource::Pause, HRESULT, IMFStreamSink::ProcessSample. По теме «mf, недопустимый, состояние, переход состояния» для 0xC00D3E82 сравните эти данные с исправным запуском до очистки журналов или пересоздания объекта.
После локализации 0xC00D3E82 действуйте по контракту подсистемы: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Для 0xC00D3E82 и условия «медиаисточник не может перейти из остановленного состояния в состояние паузы» неизменённый повтор без нового состояния не считается исправлением.
Считайте исправление подтверждённым только после устойчивого повтора исходного сценария без результата 0xC00D3E82 и без обхода штатных проверок.
Документация для результата 0xC00D3E82: IMFMediaSource::Pause · custom media source state rules · IMFStreamSink::ProcessSample.
Нужно найти другой код? Найти другой код состояния или ошибки.