Что означает код NTSTATUS 0x80000002 (STATUS_DATATYPE_MISALIGNMENT)?

 
Предыдущий Следующий
STATUS_GUARD_PAGE_VIOLATION STATUS_BREAKPOINT

STATUS_DATATYPE_MISALIGNMENT

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

STATUS_DATATYPE_MISALIGNMENT означает, что инструкция load/store получила адрес, не удовлетворяющий требованиям выравнивания для данного типа или архитектуры.

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

  • Faulting address, тип/размер доступа и требуемый alignment инструкции.
  • Pointer arithmetic и смещения полей после casts.
  • #pragma pack/structure packing и ABI на границе разных compiler/language/module.

Диагностика

Особенно подозрительны указатели внутрь byte buffer, приведённые к более строго выровненному типу. Если wire/file format не гарантирует alignment, копируйте поле в правильно выровненный объект либо используйте безопасное чтение по байтам. Повтор той же misaligned инструкции детерминированно воспроизводит проблему.

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


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