Я работаю над пользовательским гипервизором типа 2.Мой вопрос связан с инжекцией прерываний эмулируемых устройств в гостевой системе.
Сценарий: гость сделал несколько vmexit
, прежде чем следующая vmresume
VMM обнаружит, что в эмулируемом прерывании присутствует ожидающее прерываниеконтроллер.VMM запрашивает Interrupt Window Exit(IWE)
на последующем vmresume
.Как только мы получим IWE
VMM записывает информацию о прерывании в VM-entry interruption-information field 4016H
и возобновляет выполнение гостя.
Вопрос: Гарантируется ли, что прерывание будет введено в госте и обработано через гостя IDT
?Существуют ли случаи, когда внедрение прерывания может завершиться неудачей?
Я вижу сценарий, в котором вместо входа в соответствующую запись гостевой IDT, гостевой сервер возобновляет работу и начинает выполнять что-то еще в гостевом ядре.
Подробности: Windows 64 bit guest, Intel VTx