| Предыдущий | Следующий |
| DISP_E_UNKNOWNLCID | DISP_E_BADPARAMCOUNT |
DISP_E_ARRAYISLOCKED
Что означает DISP_E_ARRAYISLOCKED
DISP_E_ARRAYISLOCKED (0x8002000D) — Память заблокирована.
Результат 0x8002000D пришёл из подсистемы «COM Automation» при работе с областью «IDispatch, сопоставление имён, аргументы VARIANT и локаль». Для сообщения «память заблокирована» практический предмет проверки — «arrayislocked».
Что проверить и как подтвердить исправление
В первую очередь сопоставьте первый отказ с фактическими параметрами операции. Для 0x8002000D в сценарии «память заблокирована» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.
Диагностика 0x8002000D должна включать DISPID, имя члена, LCID, число и типы аргументов, DISPPARAMS, EXCEPINFO и argErr; отдельно запишите HRESULT, LCID, EXCEPINFO, VARIANT, CLSID. Для темы «arrayislocked» при 0x8002000D важны значения именно на первом отказе, а не после обработки ошибки верхним уровнем.
После локализации 0x8002000D действуйте по контракту подсистемы: приведите число, порядок и типы аргументов к описанию вызываемого члена; сохраните EXCEPINFO до следующего COM-вызова. Для 0x8002000D и условия «память заблокирована» неизменённый повтор без нового состояния не считается исправлением.
Считайте исправление подтверждённым только после устойчивого повтора исходного сценария без результата 0x8002000D и без обхода штатных проверок.
Документация для результата 0x8002000D: DISPPARAMS · EXCEPINFO · VariantClear.
Нужно найти другой код? Найти другой код состояния или ошибки.