W przypadku emulacji, kod gospodarza musi przechwycić wszystkie żądania gościa kierowane do urządzenia wejścia-wyjścia, zinterpretować je zgodnie ze specyfiką urządzenia emulowanego, a następnie skierować je do swoich zasobów i przekazać odpowiedź w sposób specyficzny dla emulowanego urządzenia. Każde takie żądanie wymaga wielokrotnego przekazania sterowania pomiędzy gościem a gospodarzem, co jest operacją kosztowną.

Przykład Załóżmy, że system goszczony zamierza odczytać blok dyskowy o określonym numerze. Stosując metodę właściwą dla środowiska niewirtualizowanego, gość:

Czeka aż sprzęt będzie wolny od bieżących operacji Ustawia adres transferu w sterowniku DMA i konfiguruje odbiór danych Wprowadza do rejestrów sterownika dysku adres sektora do odczytania Konfiguruje procedurę obsługi przerwania w sterowniku przerwań Wysyła do sterownika dysku polecenie odczytu. Po dokonaniu odczytu następuje zgłoszenie przerwania i obsługa uzyskanych danych.