| Предыдущий | Следующий |
| RPC_E_WRONG_THREAD | RPC_E_VERSION_MISMATCH |
RPC_E_THREAD_NOT_INIT
Что означает RPC_E_THREAD_NOT_INIT
RPC_E_THREAD_NOT_INIT (0x8001010F) — COM-вызов выполняется на потоке, который не прошёл собственную инициализацию COM apartment.
Что проверить
- Зафиксируйте thread ID и первый COM call; CoInitializeEx на другом потоке процесса не помогает.
- Для thread-pool workers обеспечьте сбалансированные CoInitializeEx/CoUninitialize на каждой ветви, использующей COM.
- Не передавайте interface pointer между apartments без предусмотренного marshaling.
Как подтвердить исправление
Тот же worker должен сначала успешно инициализировать COM и затем выполнить вызов без RPC_E_THREAD_NOT_INIT.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
