Что означает код HRESULT 0xC00D36D9 (MF_E_MULTIPLE_BEGIN)?

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

MF_E_MULTIPLE_BEGIN

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

MF_E_MULTIPLE_BEGIN (0xC00D36D9) означает, что для одного event generator уже существует незавершённый асинхронный запрос BeginGetEvent, а код пытается запустить ещё один несовместимый цикл получения событий.

Что проверить

Для конкретного объекта сопоставьте каждый BeginGetEvent с callback и последующим EndGetEvent. Не запускайте второй цикл до завершения первого и не меняйте произвольно punkState между повторными регистрациями.

Частая причина — два владельца подписки на одну и ту же очередь событий или повторная регистрация callback после гонки. Исправление — оставить один последовательный цикл Begin → Invoke → End → новый Begin и явно закрывать его при shutdown.

Технические ссылки


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