On entry, the DpcForIsr is given pointers to the current IRP, target device object, and context information, as shown by the declaration, which were passed in the ISR’s call to IoRequestDpc.
A DpcForIsr routine is responsible, in general, for the following:
If an NT device driver manages its own queueing, its DpcForIsr routine must have some way of notifying the driver to dequeue the next IRP and begin device I/O processing for the next request.
For more detailed information about the functionality of DpcForIsr routines, see also Section 9.2