Writing a DpcForIsr Routine

A driver's DpcForIsr routine is responsible for determining a final status for the current request, completing the IRP, and starting the next one.

Execution Context

In response to the ISR's call to IoRequestDpc, a driver's DpcForIsr routine (described in Table 8.6) is added to the DPC dispatch queue. When the CPU's IRQL value drops below DISPATCH_LEVEL, the DPC dispatcher calls the DpcForIsr routine. A DpcForIsr routine runs at DISPATCH_LEVEL IRQL, which means it has no access to pagable addresses.

The I/O Manager ignores multiple calls to IoRequestDpc for a given device until the DpcForIsr routine executes. This is normal behavior for all DPC objects. If a driver design is such that it might issue overlapping DPC ...

Get Windows® 2000 Device Driver Book: A Guide for Programmers, Second Edition, The now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.