| Предыдущий | Следующий |
| RO_E_ERROR_STRING_NOT_FOUND | E_ILLEGAL_DELEGATE_ASSIGNMENT |
E_STRING_NOT_NULL_TERMINATED
Что означает E_STRING_NOT_NULL_TERMINATED
E_STRING_NOT_NULL_TERMINATED (0x80000017) — Строка не завершается нулевым символом.
В подсистеме «COM/WinRT» результат 0x80000017 относится к области «контракт вызываемого interface, аргументы и state объекта». Описание «строка не завершается нулевым символом» сужает проверку до темы «строка, не, null, terminated».
Что проверить и как подтвердить исправление
До изменения конфигурации сопоставьте первый отказ с фактическими параметрами операции. Для 0x80000017 с описанием «строка не завершается нулевым символом» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.
Сопоставьте с результатом 0x80000017 следующие данные: IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите HRESULT, ID, IDs, IAgileObject. До исправления 0x80000017 сохраните исходное состояние объекта по теме «строка, не, null, terminated».
После локализации 0x80000017 действуйте по контракту подсистемы: приведите аргументы и жизненный цикл объекта к контракту метода; неизменённый вызов после contract failure повторять не следует. Для 0x80000017 и условия «строка не завершается нулевым символом» неизменённый повтор без нового состояния не считается исправлением.
Считайте исправление подтверждённым только после устойчивого повтора исходного сценария без результата 0x80000017 и без обхода штатных проверок.
Документация для результата 0x80000017: C++/WinRT error handling · concurrency and asynchronous operations · WinMD files.
Нужно найти другой код? Найти другой код состояния или ошибки.