| Предыдущий | Следующий |
| VFW_E_TIME_ALREADY_PASSED | TPC_E_RECOGNIZER_NOT_REGISTERED |
VFW_E_ALREADY_CANCELLED
Что означает VFW_E_ALREADY_CANCELLED
VFW_E_ALREADY_CANCELLED означает, что отложенная команда DirectShow или advise request уже находится в завершённом состоянии отмены, а вызывающий код повторно выполняет отмену того же объекта.
Типичные причины
- Два владельца одновременно отменяют один token/cookie.
- Очистка по тайм-ауту пересекается с обычным завершением.
- После отмены повторно используется устаревший дескриптор команды.
Что сохранить
Зафиксируйте token или advise cookie, владельца, время первой успешной отмены, поток и порядок completion callback/cleanup. Это позволяет отличить двойную отмену от исходной причины тайм-аута.
Как исправлять
Сделайте отмену идемпотентной на уровне приложения и явно передавайте владение token. После completion или cancel сразу помечайте дескриптор как недействительный. Повторно отправлять отмену не нужно.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
