1) CyU3PDmaChannelGetBuffer: this function waits until a buffer is ready on the channel, and then returns a pointer to the buffer status.
2) CPU will copy the data.
3) Memcopy does not consume the data. The host has to read it for the CPU has to discard the buffer to free the buffers for further data transfers.
4) A auto DMA will not have the option to send and asserts signals required for SPI transfers. You need to call SPI read write API. Just creating DMA channel won't be sufficient for the SPI to work