| Предыдущий | Следующий |
| CO_E_INIT_TLS_CHANNEL_CONTROL | CO_E_INIT_SCM_MUTEX_EXISTS |
CO_E_INIT_UNACCEPTED_USER_ALLOCATOR
Контракт операции
Результат CO_E_INIT_UNACCEPTED_USER_ALLOCATOR читается как Предоставленный пользователем распределитель памяти неприемлем. Практический разбор начинается на границе инициализация COM runtime, где можно получить воспроизводимые входы и первый нижележащий статус.
Что сохранить до retry
- запишите thread ID, apartment model, CoInitializeEx history, TLS/allocator/SCM state и первый initialization HRESULT. Для условия «Предоставленный пользователем распределитель памяти неприемлем» это позволяет восстановить исходный объект и не спутать его с последующим состоянием.
- снимите в трассировку технические маркеры
HRESULT,sidс теми значениями, которые были видны до очистки/rollback; они привязывают «Предоставленный пользователем распределитель памяти неприемлем» к реальному вызову. - соберите для сравнения момент первого результата и один исправный запуск, сохранив одинаковыми входные данные; различие должно появиться именно на стадии инициализация COM runtime.
Проверка гипотезы
сравните проверить порядок инициализации на одном потоке и отделить apartment setup от последующей активации. Изменяйте только предпосылку, связанную с «Предоставленный пользователем распределитель памяти неприемлем», а регистрацию, identity, входной объект и окружение по возможности оставляйте прежними.
не компенсировать ошибку дополнительными CoInitialize/CoUninitialize без проверки баланса вызовов; для результата «Предоставленный пользователем распределитель памяти неприемлем» широкая переустановка, очистка каталога или ослабление безопасности не считается доказательством причины.
Для соседних результатов CO_E_INIT_MEMORY_ALLOCATOR сравнивайте первую различающуюся операцию. Исправление подтверждено только тогда, когда исходная граница проходит при прежних входах и следующий ожидаемый шаг получает корректное состояние.
Технические ссылки
- Microsoft: HRESULT values
- Microsoft: common HRESULT values
- Microsoft: COM processes, threads, and apartments
- Портал COM для Windows
- Microsoft: COM error codes
- Microsoft: CoCreateInstance
Нужно найти другой код? Найти другой код состояния или ошибки.