Enumerator |
---|
DMA_KERNEL_BUFFER_ALLOC | The system allocates a contiguous buffer.
The user does not need to supply linear address.
|
DMA_KBUF_BELOW_16M | If DMA_KERNEL_BUFFER_ALLOC is used, this will make sure it is under 16M.
|
DMA_LARGE_BUFFER | If DMA_LARGE_BUFFER is used, the maximum number of pages are dwPages, and not WD_DMA_PAGES.
If you lock a user buffer (not a kernel allocated buffer) that is larger than 1MB, then use this option and allocate memory for pages.
|
DMA_ALLOW_CACHE | Allow caching of contiguous memory.
|
DMA_KERNEL_ONLY_MAP | Only map to kernel, dont map to user-mode.
relevant with DMA_KERNEL_BUFFER_ALLOC flag only
|
DMA_FROM_DEVICE | memory pages are locked to be written by device
|
DMA_TO_DEVICE | memory pages are locked to be read by device
|
DMA_TO_FROM_DEVICE | memory pages are locked for both read and write
|
DMA_ALLOW_64BIT_ADDRESS | Use this value for devices that support 64-bit DMA addressing.
|
DMA_ALLOW_NO_HCARD | Allow memory lock without hCard.
|
DMA_GET_EXISTING_BUF | Get existing buffer by hDma handle.
|
DMA_RESERVED_MEM | |
DMA_KBUF_ALLOC_SPECIFY_ADDRESS_WIDTH | When using this flag, the width of the address must be entered in the fourth byte of dwOptions and then the allocated address will be limited to this width.
Linux: works with contiguous buffers only. This flag is not supported on Windows ARM64.
|
DMA_GET_PREALLOCATED_BUFFERS_ONLY | Windows: Try to allocate buffers from preallocated buffers pool ONLY (if none of them are available, function will fail).
|
DMA_TRANSACTION | Use this flag to use the DMA transaction mechanism.
|
DMA_GPUDIRECT | Linux only.
|
DMA_DISABLE_MERGE_ADJACENT_PAGES | Disable merge adjacent pages.
In case the flag is omitted, the merge will take place automatically. Used for scatter gather mode only.
|