none
Should I configure my on-board DMA controller with physical address or virtual address? RRS feed

  • Question

  • My board DMA controller have address registers.

    I use WdfCommonBufferCreate create a Commonbuffer.

    And I get Virtual address and Logic address by using

    VA=WdfCommonBufferGetAlignedVirtualAddress(deviceContext->CommonBuffer); 

    LA=WdfCommonBufferGetAlignedLogicalAddress(deviceContext->CommonBuffer); 

    Should I configure my on-board DMA controller with VA or LA?

    Great Thanks!

    Thursday, October 29, 2015 2:55 AM

Answers

  • The virtual address is the address of memory from the CPU's perspective (in the context of some process). The logical address (don't confuse this with Intel's "logical address" as discussed in the CPU architecture manual) is the address of memory from a device's perspective. So, you program the logical address into the hardware's address register.

    Why are you using common-buffer DMA?

     -Brian


    Azius Developer Training www.azius.com Windows device driver, internals, security, & forensics training and consulting. Blog at www.azius.com/blog

    Thursday, October 29, 2015 4:23 AM
    Moderator