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