| Предыдущий | Следующий |
| MF_E_MULTIPLE_BEGIN | MF_E_TIMER_ORPHANED |
MF_E_MULTIPLE_SUBSCRIBERS
Что означает MF_E_MULTIPLE_SUBSCRIBERS
MF_E_MULTIPLE_SUBSCRIBERS (0xC00D36DA) — Другой компонент уже получает события от этого генератора.
Результат 0xC00D36DA пришёл из подсистемы «COM/WinRT» при работе с областью «контракт вызываемого interface, аргументы и state объекта». Для сообщения «другой компонент уже получает события от этого генератора» практический предмет проверки — «mf, несколько объектов, subscribers».
Что проверить и как подтвердить исправление
Первый шаг — сопоставьте первый отказ с фактическими параметрами операции. Когда при 0xC00D36DA система сообщает «другой компонент уже получает события от этого генератора», воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.
Для воспроизведения 0xC00D36DA сохраните IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите IMFMediaEventGenerator::GetEvent. По теме «mf, несколько объектов, subscribers» для 0xC00D36DA сравните эти данные с исправным запуском до очистки журналов или пересоздания объекта.
Коррекция для 0xC00D36DA должна быть предметной: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Для 0xC00D36DA и сообщения «другой компонент уже получает события от этого генератора» общий сброс допустим лишь как контроль, но не как доказательство причины.
Закройте диагностику после двух проверок: исходный сценарий проходит без результата 0xC00D36DA, а заведомо неверный вход отклоняется на ожидаемой границе.
Документация для результата 0xC00D36DA: BeginGetEvent return codes · IMFMediaEventGenerator::GetEvent · Wine mfplat source.
Нужно найти другой код? Найти другой код состояния или ошибки.