| Предыдущий | Следующий |
| ERROR_TRUST_FAILURE | ERROR_NETLOGON_NOT_STARTED |
RPC_S_CALL_IN_PROGRESS
Вторая операция перекрывается с незавершённым вызовом RPC
RPC_S_CALL_IN_PROGRESS указывает на конфликт состояния вызова RPC. Тот же поток, дескриптор или контекст вызова используется для операции, требующей завершения предыдущего вызова. Это отличается от ограничений нагрузки всего сервера: другой независимый поток или правильно инициализированное асинхронное состояние может продолжать работу.
Проследите начало, завершение, исключение, отмену и очистку вызовов в одном потоке и одной привязке. Ищите реентерабельные обратные вызовы, вложенное использование неявного дескриптора или код, повторно использующий асинхронное состояние до окончательного завершения. Ожидание допустимо только если модель владения гарантирует продвижение; иначе сериализуйте доступ или выделите отдельное состояние вызова.
Что проверить
- Сопоставляйте вызовы по потоку, дескриптору привязки и адресу асинхронного состояния.
- Убедитесь, что каждый вызов достигает единственного окончательного пути завершения или отказа.
- Не используйте повторно неявное или автоматическое состояние вызова из вложенных обратных вызовов.
Ссылки
- Microsoft: поток выполнения вызова RPC
- Microsoft: окончательное завершение асинхронного вызова
- Microsoft: обработка синхронных и асинхронных ошибок
Нужно найти другой код? Найти другой код состояния или ошибки.
