Synchronizes the I/O caches with the DMA buffer, by flushing the data from
the I/O caches and updating the CPU caches.
This function should be called after performing a DMA transfer (see Remarks
|hWD||Handle to WinDriver's kernel-mode driver as
received from |
Pointer to a DMA information structure, received from a previous call to
WD_STATUS_SUCCESS (0) on success, or an appropriate
error code otherwise [A].
After a DMA transfer has been completed, the data can still be in the
I/O cache, which resides between the host's physical memory and the
bus-master DMA device, but not yet in the host's main memory. If the CPU
accesses the memory, it might read the wrong data from the CPU cache. To
ensure a consistent view of the memory for the CPU, you should call
WD_DMASyncIo() after a DMA transfer in order to flush the data
from the I/O cache and update the CPU cache with the new data. The
function also flushes additional caches and buffers between the device and
memory, such as caches associated with bus extenders or bridges.