| Предыдущий | Следующий |
| 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.
Нужно найти другой код? Найти другой код состояния или ошибки.