Что означает код NTSTATUS 0xC0000220 (STATUS_MAPPED_ALIGNMENT)?

 
Предыдущий Следующий
STATUS_REPLY_MESSAGE_MISMATCH STATUS_IMAGE_CHECKSUM_MISMATCH

STATUS_MAPPED_ALIGNMENT

Представление начинается с неподдерживаемого выравнивания

Смещения представлений файла должны быть кратны системной гранулярности выделения, которая обычно больше размера аппаратной страницы. Если вызывающему коду нужны данные с произвольного смещения файла, необходимо округлить смещение сопоставления вниз и добавить delta к указателю на требуемые байты.

Используйте 64-разрядную арифметику для выровненного смещения, delta и увеличенной длины представления. Округление указателя вверх или использование размера страницы вместо гранулярности выделения может пропустить нужные данные или всё равно завершиться ошибкой. Для отсоединения необходимо сохранить возвращённую базу представления, а не скорректированный указатель на данные.

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

  • Получите dwAllocationGranularity через GetSystemInfo в работающей системе.
  • Округлите смещение файла вниз и включите префиксную delta в длину сопоставления.
  • Сохраняйте и базу сопоставления для очистки, и скорректированный указатель для доступа к данным.

Ссылки


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