Hello, I am working on audio driver based on WaveCyclic port driver. I am getting following failure in wave test, Standard Streaming\Rendering Pin Tests\Streaming buffer from different threads Successfully instantiated KSPIN_DATAFLOW_IN pin Submitting 1600 bytes to the pin KSPIN_DATAFLOW_IN pin is currently in state KSSTATE_STOP; want it to be in state KSSTATE_PAUSE Setting KSPIN_DATAFLOW_IN pin to state KSSTATE_ACQUIRE Setting KSPIN_DATAFLOW_IN pin to state KSSTATE_PAUSE Submitting IOCTL_KS_WRITE_STREAM IRP ... IRP is pending... Creating semaphore Created semaphore Creating thread 1 thread created KSPIN_DATAFLOW_IN pin is currently in state KSSTATE_PAUSE; want it to be in state KSSTATE_RUN Setting KSPIN_DATAFLOW_IN pin to state KSSTATE_RUN Submitting IOCTL_KS_WRITE_STREAM IRP ... GetLastError did not return ERROR_IO_PENDING even though the pin is paused [ GetLastError() returned 997 (0x3E5) - Overlapped I/O operation is in progress. ]. pin position pos2.playoffset = 0 , pos1.playOffset = 80 pin position pos2.playoffset = 80 , pos1.playOffset = 240 pin position pos2.playoffset = 240 , pos1.playOffset = 320 pin position pos2.playoffset = 320 , pos1.playOffset = 568 pin position pos2.playoffset = 568 , pos1.playOffset = 1440 pin position pos2.playoffset = 1440 , pos1.playOffset = 1600 FAIL: Position (1600) is less than the amount of data streamed (3200). While investigating about above failure, i got to know that my driver is not getting total data ( 3200 bytes in above case ) that test sends. Whatever data i am getting at my IDMAChannel::CopyTo function, that i am updating to Port driver in IMiniportWaveCyclicStream::GetPosition method. In above case, i observed that my IDMAChannel::CopyTo function gets total 1600 bytes only and i am also updating 1600 as Play Position offset. Here i am not getting why my driver is not getting total 3200 bytes of data. Can anyone please help me to understand this? Also when exactly CopyTo and GetPosition method gets called ? Thanks.