StorPortIssueDpc routine

The StorPortIssueDpc routine issues a deferred procedure call (DPC).

Syntax


BOOLEAN StorPortIssueDpc(
  _In_ PVOID     DeviceExtension,
  _In_ PSTOR_DPC Dpc,
  _In_ PVOID     SystemArgument1,
  _In_ PVOID     SystemArgument2
);

Parameters

DeviceExtension [in]

Pointer to the per-adapter device extension.

Dpc [in]

Pointer to a buffer containing an initialized DPC object of type STOR_DPC returned by the StorPortInitializeDpc routine.

SystemArgument1 [in]

Pointer to caller-supplied information that will be passed to the deferred routine.

SystemArgument2 [in]

Pointer to caller-supplied information that will be passed to the deferred routine.

Return value

The StorPortIssueDpc routine returns TRUE if the DPC was successfully inserted into the DPC queue, and FALSE otherwise.

Remarks

The StorPortIssueDpc routine calls the KeInsertQueueDpc kernel routine to queue the DPC. The KeInsertQueueDpc kernel routine does not allow a DPC to be queued multiple times. Thus, if the DPC object specified by the Dpc parameter is already in the DPC queue, KeInsertQueueDpc ignores the queue request. This ensures that a deferred routine initialized with StorPortInitializeDpc is always synchronized with itself. In other words, the caller does not need to sequentialize calls to the StorPortIssueDpc routine to ensure that multiple instances the routine do not run simultaneously.

If a miniport driver has multiple work-items that must be performed by the same DPC, the miniport driver must ensure that each work item completes before issuing the DPC for the next work item.

Requirements

Target platform

Desktop

Header

Storport.h (include Storport.h)

See also

KeInsertQueueDpc
StorPortInitializeDpc
STOR_DPC

 

 

Send comments about this topic to Microsoft

Anzeigen:
© 2015 Microsoft