Ray Yang
2014-09-03 06:40:09 UTC
Hi,
I am trying to implement a pci device to support data transfer between
host/guest via DMA but now am a bit lost on how to start a DMA
transaction.
Basically, I follow the sample of FDC in VBox source code tree to call
PDMDevHlpDMARegister(..., callback_host, ...) to register a callback on
the host. Then on the guest Windows side, I call
WdfDmaTransactionInitialize to initialize the DMA transaction and call
WdfDmaTransactionExecute to start the execution. However, the
callback_host routine is never called by VBox. I set the breakpoints on
FDC's dma routine but it is never triggered either.
So, is there anything else I need to do?
Thanks.
-Ray
I am trying to implement a pci device to support data transfer between
host/guest via DMA but now am a bit lost on how to start a DMA
transaction.
Basically, I follow the sample of FDC in VBox source code tree to call
PDMDevHlpDMARegister(..., callback_host, ...) to register a callback on
the host. Then on the guest Windows side, I call
WdfDmaTransactionInitialize to initialize the DMA transaction and call
WdfDmaTransactionExecute to start the execution. However, the
callback_host routine is never called by VBox. I set the breakpoints on
FDC's dma routine but it is never triggered either.
So, is there anything else I need to do?
Thanks.
-Ray