| Предыдущий | Следующий |
| STATUS_HV_INVALID_HYPERCALL_INPUT | STATUS_HV_INVALID_PARAMETER |
STATUS_HV_INVALID_ALIGNMENT
GPA параметра не соответствует контракту памяти гипервызова
STATUS_HV_INVALID_ALIGNMENT означает, что переданный адрес параметра имеет недопустимое выравнивание для интерфейса гипервызовов. Гипервызовы Hyper-V с параметрами в памяти используют гостевые физические адреса входных и выходных блоков; TLFS требует выравнивания этих блоков по 8 байтам и дополнения их размера до кратного 8 байтам.
Это не общая ошибка виртуальной памяти. Исправления только видимого размера структуры недостаточно, если GPA не выровнен, список входа или выхода пересекает границу страницы либо оба списка перекрываются. Это отдельные ограничения ABI, которые необходимо проверять по адресам, переданным гипервизору, а не по гостевому виртуальному указателю в журнале.
Что проверить
- Фактические значения GPA, а не только гостевые виртуальные адреса до преобразования.
- Выравнивание по 8 байтам, дополнение размера, размещение в пределах страницы и отсутствие перекрытия областей входа и выхода.
- Что страницы параметров являются обычными GPA-страницами, а не overlay-страницами Hyper-V.
- Упаковку структур, выравнивание выделенной памяти и смещение, внесённое пользовательским заголовком буфера.
Ссылки
- Microsoft: интерфейс гипервызовов Hyper-V
- Microsoft: обнаружение возможностей и интерфейсов Hyper-V
- Исходный код Linux: инициализация гостевой системы Hyper-V
Нужно найти другой код? Найти другой код состояния или ошибки.