IoRequestDpc

VOID
    IoRequestDpc(

        IN PDEVICE_OBJECT  DeviceObject,
        IN PIRP  Irp,
        IN PVOID  Context
        );

IoRequestDpc queues a driver-supplied DpcForIsr routine from the ISR to complete interrupt-driven I/O processing at a lower IRQL.

Parameters

DeviceObject
Points to the device object for which the request that caused the interrupt is being processed.
Irp
Points to the current IRP for the specified device.
Context
Points to a driver-determined context to be passed to the DPC routine.

Comments

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.

See Also

IoInitializeDpcRequest, KeInitializeDpc, KeInsertQueueDpc