Что означает код HRESULT 0xC00D3E82 (MF_E_INVALID_STATE_TRANSITION)?

 
Предыдущий Следующий
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.


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