The IoRequestDpc routine queues a driver-supplied DpcForIsr routine from the ISR to complete interrupt-driven I/O processing at a lower IRQL.
VOID
IoRequestDpc(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context
);
None
Declared in wdm.h and ntddk.h. Include wdm.h or ntddk.h.
Callers of IoRequestDpc must be running at DIRQL.
Because IoRequestDpc is called from the device driver’s ISR, the DIRQL is the SynchronizeIrql value that was specified when the driver called IoConnectInterrupt. However, it is actually possible to queue a DPC at any IRQL >= DISPATCH_LEVEL using the Ke..Dpc routines.