Streaming States

Each stream provided by the minidriver exists in one of four states: KSSTATE_STOP, KSSTATE_ACQUIRE, KSSTATE_PAUSE, or KSSTATE_RUN. Upon initialization, the stream is, by default, in the KSSTATE_STOP state. Transitions to the other states are made when the Stream class interface sends an SRB_SET_STREAM_STATE request to the minidriver. The following table identifies and describes the four stream states.

State Description


When the stream state is stopped, the minidriver uses the absolute minimum of resources, and there are no outstanding data SRBs in the minidriver's queue.


When the stream state is acquiring resources, the minidriver allocates all needed resources, such as bandwidth on USB and IEEE 1394.


When the stream state is paused, the minidriver is prepared to instantly make a transition to KSSTATE_RUN.


When the stream state is streaming, the minidriver fills buffers and completes SRBs using CompleteStreamSRB.