VOID
KeInitializeDpc(
IN PKDPC Dpc,
IN PKDEFERRED_ROUTINE DeferredRoutine,
IN PVOID DeferredContext
);
KeInitializeDpc initializes a DPC object, setting up a deferred procedure that can be called with a given context.
Parameters
Dpc
Points to a DPC object for which the caller provides the storage.
DeferredRoutine
Specifies the entry point for a routine to be called when the DPC object is removed from the DPC queue. A DeferredRoutine is declared as follows:
VOID
(*PKDEFERRED_ROUTINE)(
IN PKDPC Dpc;
IN PVOID DeferredContext;
IN PVOID SystemArgument1;
IN PVOID SystemArgument2;
);
DeferredContext
Points to a caller-supplied context to be passed to the DeferredRoutine when it is called.
Comments
The caller can queue an initialized DPC with KeInsertQueueDpc. The caller also can set up a timer object associated with the initialized DPC object and queue the DPC with KeSetTimer.
Storage for the DPC object must be resident: in the device extension of a driver-created device object, in the controller extension of a driver-created controller object, or in nonpaged pool allocated by the caller.
Callers of this routine must be running at IRQL PASSIVE_LEVEL.
See Also