Virtual Addr VS Logical Address

This may be a very simple question, but still i have some confusion.

Is logical address same as system virtual address, but just used in context
of device DMA? If not then what exactly is the difference?

Also does BufferEndLogicalAddr = BufferStartLogAddr + BUFFER_SIZE?

Thanks in advance for your help.
Rajinder

> Is logical address same as system virtual address, but just used in
context

of device DMA? If not then what exactly is the difference?

No.
Logical address is the physical address passed through bus-specific
address translation. It can be better named as bus DMA address.
The translation is bus-specific and can involve things like PCI brigde state
or AGP GART.
Do not use MmACM if you want the logical address. Use
HalAllocateCommonBuffer instead.

Max