Что означает код NTSTATUS 0x8000000D (STATUS_PARTIAL_COPY)?

 
Также может означать:
КонстантаТипОС
E_ILLEGAL_STATE_CHANGEHRESULTWindows
Предыдущий Следующий
STATUS_GUID_SUBSTITUTION_MADE STATUS_DEVICE_PAPER_EMPTY

STATUS_PARTIAL_COPY

Защита или доступность исходного либо целевого диапазона изменилась во время копирования

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

Всегда используйте возвращённое число байтов и не разбирайте выходную структуру как полную, если обязательные поля не помещаются в это количество. При исследовании работающего процесса приостанавливайте или иным образом синхронизируйте целевой процесс только тогда, когда приложение это допускает: защита и распределение памяти могут закономерно изменяться между отдельными чтениями.

Что следует проверить

  • Зафиксируйте запрошенное и фактически скопированное число байтов и определите первую страницу, на которой произошёл сбой.
  • Запросите состояние и защиту исходного и целевого регионов на момент ошибки.
  • Проектируйте средства чтения с учётом изменяющейся памяти процесса и проверяйте каждую структуру переменной длины.

Ссылки


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