![]() |
Jungo WinDriver
Official Documentation
|
| DWORD DLLCALLCONV WDC_DMATransactionContigInit | ( | _In_ WDC_DEVICE_HANDLE | hDev, |
| _Outptr_ PVOID * | ppBuf, | ||
| _In_ DWORD | dwOptions, | ||
| _In_ DWORD | dwDMABufSize, | ||
| _Outptr_ WD_DMA ** | ppDma, | ||
| _In_ WDC_INTERRUPT_PARAMS * | pInterruptParams, | ||
| _In_ DWORD | dwAlignment | ||
| ) |
Initializes the transaction, allocates a contiguous DMA buffer, locks it in physical memory, and returns mappings of the allocated buffer to physical address space and to user-mode and kernel virtual address spaces.
| [in] | hDev | Handle to a WDC device, returned by WDC_xxxDeviceOpen() |
| [out] | ppBuf | Pointer to a pointer to be filled by the function with the user-mode mapped address of the allocated DMA buffer. |
| [in] | dwOptions | A bit mask of any of the following flags (defined in an enumeration in windrvr.h): DMA_FROM_DEVICE: Synchronize the DMA buffer for transfers from the device to memory. DMA_TO_DEVICE: Synchronize the DMA buffer for transfers from memory to the device. DMA_TO_FROM_DEVICE: Synchronize the DMA buffer for transfers in both directions i.e., from the device to memory and from memory to the device (<=> DMA_FROM_DEVICE | DMA_TO_DEVICE). DMA_ALLOW_CACHE: Enables caching for the allocated DMA memory. If not set, memory is allocated as non-cached. If set, memory is cached, and the transaction automatically handles cache flushing and invalidation before and after the transfer. On Windows, this flag is ignored, the memory is always cached and managed automatically. DMA_ALLOW_64BIT_ADDRESS: Allow allocation of 64-bit DMA addresses. |
| [in] | dwDMABufSize | The size (in bytes) of the DMA buffer. |
| [out] | ppDma | Pointer to a pointer to a DMA buffer information structur, which is allocated by the function. The pointer to this structure (*ppDma) should be passed to WDC_DMATransactionUninit() when the DMA buffer is no longer needed. |
| [in] | pInterruptParams | WDC_DMATransactionContigInit() invokes WDC_IntEnable() with the relevant parameters from the structure (WDC_INTERRUPT_PARAMS). No action will be taken if this parameter is NULL. |
| [in] | dwAlignment | This value specifies the alignment requirement for the contiguous buffer. |
For more detailed usage of the WDC_DMA Transactions functions, please refer to 11.3. Performing Direct Memory Access (DMA) transactions