Что означает код HRESULT 0xC00D36F5 (MF_E_RT_WOULDBLOCK)?

 
Предыдущий Следующий
MF_E_RT_TOO_MANY_CLASSES MF_E_NO_BITPUMP

MF_E_RT_WOULDBLOCK

Что означает MF_E_RT_WOULDBLOCK

MF_E_RT_WOULDBLOCK (0xC00D36F5) — Операцию невозможно выполнить, поскольку объект принадлежит другому потоку.

Результат 0xC00D36F5 пришёл из подсистемы «COM/WinRT» при работе с областью «контракт вызываемого interface, аргументы и state объекта». Для сообщения «операцию невозможно выполнить, поскольку объект принадлежит другому потоку» практический предмет проверки — «mf, rt, wouldblock».

Что проверить и как подтвердить исправление

Не начинайте с общего сброса компонента: сопоставьте первый отказ с фактическими параметрами операции. При 0xC00D36F5 и условии «операцию невозможно выполнить, поскольку объект принадлежит другому потоку» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.

Для воспроизведения 0xC00D36F5 сохраните IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите IDs, ID, HRESULT, IMFRealTimeClient. По теме «mf, rt, wouldblock» для 0xC00D36F5 сравните эти данные с исправным запуском до очистки журналов или пересоздания объекта.

Коррекция для 0xC00D36F5 должна быть предметной: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Для 0xC00D36F5 и сообщения «операцию невозможно выполнить, поскольку объект принадлежит другому потоку» общий сброс допустим лишь как контроль, но не как доказательство причины.

После исправления повторите тот же вызов на прежних данных; у результата 0xC00D36F5 должен измениться первый неуспешный этап, а не только последующее сообщение.

Документация для результата 0xC00D36F5: threading and work-queue recommendations · IMFRealTimeClient and priority inversion · work queue identifiers.


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