PEXECUTE_DMA callback function (video.h)

HwVidExecuteDma is a miniport driver-implemented callback routine that is responsible for retrieving physical address/length pairs from a scatter/gather list, and for programming the hardware to start the actual DMA transfer.

Syntax

PEXECUTE_DMA PexecuteDma;

void PexecuteDma(
  PVOID HwDeviceExtension,
  PVP_DMA_ADAPTER VpDmaAdapter,
  PVP_SCATTER_GATHER_LIST SGList,
  PVOID Context
)
{...}

Parameters

HwDeviceExtension

Pointer to the miniport driver's per-adapter storage area. For more information, see Device Extensions.

VpDmaAdapter

Pointer to the VP_DMA_ADAPTER structure that represents the bus-master adapter. This structure was returned by a call to VideoPortGetDmaAdapter.

SGList

Pointer to a VP_SCATTER_GATHER_LIST structure. The video port driver fills in the information in this structure, and passes this structure to the miniport driver.

Context

Pointer to the driver-determined context passed in from VideoPortStartDma.

Return value

None

Remarks

This function is available in Windows XP and later.

If the miniport driver reports that the device does not support scatter/gather, there will be only a single element in the scatter/gather list passed to this routine. The scatter/gather list is valid until VideoPortCompleteDma is called.

The last task that the video port driver's VideoPortStartDma function performs is to call the miniport driver's HwVidExecuteDma callback routine. It is this callback that actually carries out the DMA transfer operation.

HwVidExecuteDma must be in nonpaged memory and must not access any pageable code or data.

Requirements

Requirement Value
Target Platform Desktop
Header video.h (include Video.h)

See also

VP_DMA_ADAPTER

VP_SCATTER_GATHER_LIST

VideoPortCompleteDma

VideoPortGetDmaAdapter

VideoPortStartDma