| Предыдущий | Следующий |
| MF_E_MULTIPLE_SUBSCRIBERS | MF_E_STATE_TRANSITION_PENDING |
MF_E_TIMER_ORPHANED
Что означает MF_E_TIMER_ORPHANED
MF_E_TIMER_ORPHANED (0xC00D36DB) — Таймер был оставлен без владельца до наступления времени обратного вызова.
IMFTimer::SetTimer планирует асинхронный обратный вызов по времени общих часов воспроизведения и возвращает ключ для отмены. Этот HRESULT указывает, что запрос таймера остался без действующего владельца до наступления времени вызова.
Что проверить и как подтвердить исправление
Записывайте запрошенное время, флаги таймера, объект обратного вызова и связанный объект состояния и точный ключ отмены, возвращённый SetTimer. При завершении работы отменяйте именно этот ключ, а не собственный идентификатор приложения или ключ другого запроса.
Даже успешный CancelTimer не гарантирует, что уже поставленный на выполнение обратный вызов никогда не придёт. Поэтому владелец должен безопасно переживать поздний обратный вызов; исправление подтверждается корректным жизненным циклом и отсутствием обращения к уже уничтоженному состоянию.
Документация для результата 0xC00D36DB: IMFTimer::SetTimer · IMFTimer::CancelTimer · EVR presenter scheduling.
Нужно найти другой код? Найти другой код состояния или ошибки.
