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