Port drivers must install hardware interrupt handlers if they are to perform their input and output operations using queues. This is the most appropriate mechanism for interrupt-driven devices such as serial ports.
When it opens a port, a port driver installs a hardware interrupt handler by using the VPICD_Virtualize_IRQ service. When it closes the port, the port driver uses the VPICD_Force_Default_Behavior service to remove the interrupt handler.
An interrupt handler must be in locked memory, must only call functions that are in locked memory, and must only call services that are asynchronous.