Jungo WinDriver  
Official Documentation

◆ WD_DMA_OPTIONS

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.

Definition at line 433 of file windrvr.h.