Что означает код HRESULT 0x80400001 (INPUT_E_REENTRANCY)?

 
Предыдущий Следующий
INPUT_E_OUT_OF_ORDER INPUT_E_MULTIMODAL

INPUT_E_REENTRANCY

Что означает INPUT_E_REENTRANCY

INPUT_E_REENTRANCY (0x80400001) — Запрошенную операцию нельзя выполнять из обратного вызова или обработчика события.

Результат 0x80400001 пришёл из подсистемы «COM/WinRT» при работе с областью «контракт вызываемого interface, аргументы и state объекта». Для сообщения «запрошенную операцию нельзя выполнять из обратного вызова или обработчика события» практический предмет проверки — «входные данные, reentrancy».

Что проверить и как подтвердить исправление

Сначала сопоставьте первый отказ с фактическими параметрами операции. Для 0x80400001 в условии «запрошенную операцию нельзя выполнять из обратного вызова или обработчика события» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.

Диагностика 0x80400001 должна включать IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите INPUT_E_REENTRANCY. Для темы «входные данные, reentrancy» при 0x80400001 важны значения именно на первом отказе, а не после обработки ошибки верхним уровнем.

Коррекция для 0x80400001 должна быть предметной: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Для 0x80400001 и сообщения «запрошенную операцию нельзя выполнять из обратного вызова или обработчика события» общий сброс допустим лишь как контроль, но не как доказательство причины.

Подтвердите изменение повтором исходной операции: результат 0x80400001 не должен возникать на исправном объекте, но прежний отрицательный контроль обязан оставаться предсказуемым.

Документация для результата 0x80400001: COM error codes for Input and graphics · Pointer Input Messages and Notifications · POINTER_INFO structure and pointer lifetime.


Нужно найти другой код? Найти другой код состояния или ошибки.