Previous Next

IoRequestDpc

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
    );

Parameters

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

Return Value

None

Headers

Declared in wdm.h and ntddk.h. Include wdm.h or ntddk.h.

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