The minidriver architecture

A minidriver consists of these fundamental components:

Once a minidriver is created, its handler function is called throughout the booting process. The handler function is initially triggered from a timer (polling). Once CPU interrupts are enabled, the handler function is triggered by the real hardware interrupt. Note that the timers can also generate interrupts, allowing for a polled approach to be used for hardware that doesn't generate interrupts.

You can use the data area to store any information that the handler function needs to keep and potentially share with the full driver.