// video.h
PEXECUTE_DMA PexecuteDma;
VOID PexecuteDma(
PVOID HwDeviceExtension,
PVP_DMA_ADAPTER VpDmaAdapter,
PVP_SCATTER_GATHER_LIST SGList,
PVOID Context
)
{...}
View the official Windows Driver Kit DDI referenceNo description available.
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.
HwDeviceExtensionPointer to the miniport driver's per-adapter storage area. For more information, see Device Extensions.
VpDmaAdapterPointer to the VP_DMA_ADAPTER structure that represents the bus-master adapter. This structure was returned by a call to VideoPortGetDmaAdapter.
SGListPointer 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.
ContextPointer to the driver-determined context passed in from VideoPortStartDma.
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.