| Предыдущий | Следующий |
| 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 или неверную длину массива.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.