Statusübergänge

Um eine geordnete Ressourcenzuordnung sicherzustellen, ist nur eine Teilmenge der möglichen Kernel-Streamingstatusübergänge zulässig. In der folgenden Tabelle sind die zulässigen Übergänge zusammen mit Aufgaben aufgeführt, die ein Stream-Klassenminidriver normalerweise während solcher Übergänge ausführt.

Übergang Beschreibung

Anhalten, um anzuhalten

Zuordnen von Ressourcen. Die Lese-SRBs werden nach Abschluss des Übergangs zu KSSTATE_PAUSE in die Warteschlange eingereiht.

Anhalten der Ausführung

Beginnen Sie mit dem Streaming.

Ausführen, um anzuhalten

Streaming beenden. Die ausstehenden Lese-SRBs verbleiben in der Warteschlange, die vom Minitreiber verwaltet wird.

Anhalten, um anzuhalten

Aufheben der Zuordnung von Ressourcen und Abschließen aller ausstehenden Lese-SRBs. SRBs, die nicht mit einem Bild gefüllt wurden, werden mit der Länge 0 (null) im DataUsed-Member der KSSTREAM_HEADER-Struktur abgeschlossen.

Hinweis : Übergänge können mehrmals zwischen dem KSSTATE_PAUSE - und KSSTATE_RUN zustand wechseln, bevor sie zum KSSTATE_STOP Zustand zurückkehren. Videoaufnahme-Minitreiber sollten Übergänge erwarten, z. B.:

KSSTATE_STOP ->KSSTATE_ACQUIRE ->KSSTATE_PAUSE ->KSSTATE_RUN ->KSSTATE_PAUSE ->KSSTATE_RUN ->KSSTATE_PAUSE -> KSSTATE_STOP

Wenn sich ein Stream in einem KSSTATE_STOP Zustand befindet, muss der Minidriver sofort alle ausstehenden SRBs mit Lesedaten abschließen.

Da eine Anwendung im Benutzermodus während des Streamings unerwartet beendet werden kann, müssen alle Stream-Klassen-Minitreiber jederzeit eine SRB_CLOSE_STREAM-Anforderung von der Stream-Klassenschnittstelle akzeptieren und verarbeiten. Bevor die Stream-Klassenschnittstelle SRB_CLOSE_STREAM an einen Minitreiber sendet, werden alle ausstehenden Puffer über die HwCancelPacket-Routine des Minitreibers abgebrochen. Beachten Sie, dass der Streamstatus nicht auf KSSTATE_STOP festgelegt werden kann, bevor die Anwendung beendet wird.

Aktualisieren Sie die PictureNumber - oder DropCount-Member von KS_FRAME_INFO, KS_VBI_FRAME_INFO oder KSPROPERTY_DROPPEDFRAMES_CURRENT_S nicht beim Übergang von KSSTATE_PAUSE zu KSSTATE_RUN oder KSSTATE_RUN zu KSSTATE_PAUSE. Weitere Informationen finden Sie unter Aufzeichnen von Videos.