Что означает код ошибки Windows 998 (ERROR_NOACCESS)?

 
Предыдущий Следующий
ERROR_IO_PENDING ERROR_SWAPERROR

ERROR_NOACCESS

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

ERROR_NOACCESS означает недопустимое обращение к памяти. Для диагностики важен конкретный адрес и операция чтения/записи, а не повтор вызова с теми же указателями.

Что проверить

  • Faulting address, call stack и размеры всех буферов, переданных native API.
  • NULL, уже освобождённые или усечённые pointers, а также lifetime объекта при асинхронном вызове.
  • Совпадение 32/64-bit ABI, structure packing, размера полей и соглашения о вызовах между caller и библиотекой.

Особенно для managed/native границы

Проверьте pinning и время жизни памяти, которую runtime может перемещать или освобождать после возврата wrapper. Снимите dump в точке первого bad access и сопоставьте адрес с region/module. Добавление проверки if (ptr) помогает только для NULL и не обнаруживает stale pointer или неверную длину массива.

Технические ссылки


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