IoInitializeDpcRequest

VOID
    IoInitializeDpcRequest(

        IN PDEVICE_OBJECT  DeviceObject,
        IN PIO_DPC_ROUTINE  DpcRoutine
        );

IoInitializeDpcRequest registers a driver-supplied DpcForIsr routine when a device driver initializes.

Parameters

DeviceObject
Points to the device object representing the physical device that generates interrupts.
DpcRoutine
Points to the driver-supplied DpcForIsr routine, which is declared as follows:
VOID
(*PIO_DPC_ROUTINE)(
    IN PKDPC Dpc,
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp,
    IN PVOID Context
    );

Comments

IoInitializeDpcRequest associates a driver-supplied DpcForIsr routine with a given device object so the driver’s ISR can call IoRequestDpc to queue the DpcForIsr. This routine completes interrupt-driven I/O operations at a lower IRQL than that of the ISR.

Callers of IoInitializeDpcRequest must be running at IRQL PASSIVE_LEVEL.

It is possible to call KeInitializeDpc to initialize another DPC at IRQL <= DISPATCH_LEVEL.

See Also

IoRequestDpc, KeInitializeDpc