Thanks for all your responses. As I checked DDK, I got copyto and copyfrom is used for data operation with DMA. Since this is a virtual driver, no real DMA is created, and only some buffers are allocated to m_pvDmaBuffer during the creation of newstream, so what I thought is there is no need to use copyto and copyfrom, therefore, I only use RtlCopyMemory to copy audio data to m_pvDmaBuffer. I am new to audio driver, I do not know what the driver or system do with those buffer (m_pvDmaBuffer), and how driver or system send data in the buffer to the pin. I know in AVstream driver, pin is defined clearly with buffer called frame to save data, but for portcls, I totally do not understand how data flow. Thank you very much for your help. Yong