3.5 Interrupt Objects

Each NT driver of a physical device that generates interrupts must register its ISR when the driver initializes. The NT Kernel defines the interrupt object type to track information about each interrupt vector, its system-assigned DIRQL, the ISR to be called when the interrupt occurs, and so forth.

Every NT driver should be portable across all NT platforms, including SMP machines with several I/O buses of various types (ISA, EISA, PCI and so forth). Consequently, the following are configurable when NT device drivers and the system itself are loaded:

For any Windows NT platform, the NT HAL can remap all bus-relative device interrupt vectors to a set of machine-specific interrupt vectors, each with a system-assigned DIRQL value. A platform-specific HAL provides hardware-level support to both the Kernel and the I/O Manager for the I/O buses, peripherals, and processors in each NT machine, as already shown in Figure 3.1. The HAL also provides platform-specific support for NT drivers that use interrupt objects, as explained in the next section.