| Предыдущий | Следующий |
| RPC_E_INVALID_CALLDATA | RPC_E_WRONG_THREAD |
RPC_E_CANTCALLOUT_ININPUTSYNCCALL
Что означает RPC_E_CANTCALLOUT_ININPUTSYNCCALL
RPC_E_CANTCALLOUT_ININPUTSYNCCALL (0X8001010D) означает, что код делает исходящий COM/RPC call во время input-synchronous вызова, где такой callout запрещён. Проблема в текущей фазе dispatch, а не в доступности удалённого сервера.
Что проверить
- Определите callback/window-message path, в котором текущий поток оказался внутри input-synchronous call.
- Снимите стек непосредственно перед исходящим COM method и найдите участок reentrancy, который можно отложить до возврата из синхронного обработчика.
- Перенесите работу на очередь/event loop после завершения input-synchronous фазы. Если тот же метод после defer проходит, registration/security менять не требуется.
Не смешивайте с RPC_E_CANTPOST_INSENDCALL: оба результата связаны с call nesting, но тот код отдельно описывает попытку callout через PostMessage во время межзадачного SendMessage.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
