Bagikan melalui


Transisi Status

Untuk memastikan alokasi sumber daya yang teratur, hanya subset dari kemungkinan transisi status streaming kernel yang diizinkan. Tabel berikut mencantumkan transisi yang diizinkan bersama dengan tugas yang biasanya dilakukan oleh minidriver kelas Stream selama transisi tersebut.

Transisi Deskripsi

Berhenti untuk menjeda

Alokasikan sumber daya. SRB baca diantrekan setelah transisi ke KSSTATE_PAUSE selesai.

Jeda untuk menjalankan

Mulai streaming.

Jalankan untuk menjeda

Hentikan streaming. SRB baca yang beredar tetap dalam antrean yang dikelola oleh minidriver.

Jeda untuk berhenti

Batalkan alokasi sumber daya dan selesaikan semua SRB baca yang luar biasa. SRB yang belum diisi dengan gambar diselesaikan dengan panjang nol dalam anggota DataUsed dari struktur KSSTREAM_HEADER .

Catatan : Transisi dapat berputar beberapa kali antara status KSSTATE_PAUSE dan KSSTATE_RUN sebelum kembali ke status KSSTATE_STOP . Minidriver pengambilan video harus mengharapkan transisi seperti:

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

Saat aliran dalam status KSSTATE_STOP , minidriver harus segera menyelesaikan semua SRB baca data yang luar biasa.

Karena aplikasi mode pengguna dapat berakhir secara tiba-tiba saat streaming, semua minidriver kelas Stream harus menerima dan memproses permintaan SRB_CLOSE_STREAM dari antarmuka kelas Stream kapan saja. Sebelum antarmuka kelas Stream mengirim SRB_CLOSE_STREAM ke minidriver, antarmuka tersebut membatalkan semua buffer yang luar biasa melalui rutinitas HwCancelPacket minidriver. Perhatikan bahwa status aliran tidak dapat diatur ke KSSTATE_STOP sebelum aplikasi berakhir.

Jangan perbarui anggota PictureNumber atau DropCount dari KS_FRAME_INFO, KS_VBI_FRAME_INFO, atau KSPROPERTY_DROPPEDFRAMES_CURRENT_S saat transisi dari KSSTATE_PAUSE ke KSSTATE_RUN atau KSSTATE_RUN ke KSSTATE_PAUSE. Untuk informasi selengkapnya, lihat Mengambil Video.