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 |
---|---|
KSSTATE_STOP |
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. |
KSSTATE_ACQUIRE |
When the stream state is acquiring resources, the minidriver allocates all needed resources, such as bandwidth on USB and IEEE 1394. |
KSSTATE_PAUSE |
When the stream state is paused, the minidriver is prepared to instantly make a transition to KSSTATE_RUN. |
KSSTATE_RUN |
When the stream state is streaming, the minidriver fills buffers and completes SRBs using CompleteStreamSRB. |