Secondary interrupt handlers are usually queued during the processing of a hardware interrupt. A secondary interrupt handler's execution will be deferred until processing is about to move back to noninterrupt level. You may, however, queue secondary interrupt handlers from secondary interrupt level. In this case, the queued handler will be run after all other such queued handlers, including the current handler, have finished.
Secondary interrupt handlers that are queued from hardware interrupt handlers consume memory resources from the time they are queued until the time they finish execution. They do this regardless of the execution context (see Device Driver Execution Contexts ). You should make every attempt to limit the number of simultaneously queued secondary interrupt handlers because the memory resources available to them are limited. Only one kind of secondary interrupt handler, that with two parameters, may be queued.