Что означает код HRESULT 0x8000000A (E_PENDING)?

 
Также может означать:
КонстантаТипОС
STATUS_HANDLES_CLOSEDNTSTATUSWindows
Предыдущий Следующий
EVT_WDSMCS_S_PARAMETERS_READ E_BOUNDS

E_PENDING

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

E_PENDING (0x8000000A) — Данные, необходимые для завершения операции, ещё недоступны.

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

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

Сначала разделите ожидание очереди, работу компонента и зависимый ввод-вывод. Для 0x8000000A в условии «данные, необходимые для завершения операции, ещё недоступны» разделите ожидание очереди, работу компонента и зависимый ввод-вывод; повторяйте только после наблюдаемого изменения нагрузки или состояния.

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

Практическое исправление для 0x8000000A: приведите аргументы и жизненный цикл объекта к контракту метода; неизменённый вызов после contract failure повторять не следует. В контексте условия «данные, необходимые для завершения операции, ещё недоступны» для 0x8000000A оно должно устранить подтверждённую причину, а не скрыть исходный HRESULT.

После исправления повторите тот же вызов на прежних данных; у результата 0x8000000A должен измениться первый неуспешный этап, а не только последующее сообщение.

Документация для результата 0x8000000A: C++/WinRT error handling · concurrency and asynchronous operations · WinMD files.


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