Что означает код HRESULT 0xC00D36DB (MF_E_TIMER_ORPHANED)?

 
Предыдущий Следующий
MF_E_MULTIPLE_SUBSCRIBERS MF_E_STATE_TRANSITION_PENDING

MF_E_TIMER_ORPHANED

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

MF_E_TIMER_ORPHANED (0xC00D36DB) — Таймер был оставлен без владельца до наступления времени обратного вызова.

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

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

Первый шаг — сопоставьте первый отказ с фактическими параметрами операции. Когда при 0xC00D36DB система сообщает «таймер был оставлен без владельца до наступления времени обратного вызова», воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.

Для воспроизведения 0xC00D36DB сохраните IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите IMFTimer::SetTimer, ID, IMFTimer::CancelTimer. По теме «mf, timer, orphaned» для 0xC00D36DB сравните эти данные с исправным запуском до очистки журналов или пересоздания объекта.

Практическое исправление для 0xC00D36DB: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. В контексте условия «таймер был оставлен без владельца до наступления времени обратного вызова» для 0xC00D36DB оно должно устранить подтверждённую причину, а не скрыть исходный HRESULT.

Подтвердите изменение повтором исходной операции: результат 0xC00D36DB не должен возникать на исправном объекте, но прежний отрицательный контроль обязан оставаться предсказуемым.

Документация для результата 0xC00D36DB: IMFTimer::SetTimer · IMFTimer::CancelTimer · EVR presenter scheduling.


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