Bagikan melalui


Streaming Minidrivers

Nota Bagian ini merinci driver kelas Stream.sys yang sudah kedaluarsa. Dengan rilis Microsoft Windows XP, Microsoft mendukung Stream.sys hanya untuk driver yang ada. Pada rilis ini, Microsoft merekomendasikan agar vendor mempertimbangkan untuk mengembangkan driver multimedia video atau audio/video baru menggunakan model driver kelas AVStream. Lihat detail di Gambaran Umum AVStream. Jika mengembangkan driver khusus audio, Anda harus menulis driver miniport audio di bawah driver kelas Portcls.sys yang disediakan Microsoft. Untuk detailnya, lihat Driver Audio Miniport.

Vendor dapat mendukung perangkat khusus video atau audio/video dengan menyediakan minidriver yang berjalan di bawah driver kelas Stream.sys yang disediakan Microsoft. Dalam dokumentasi ini, minidriver yang disediakan oleh vendor di bawah Stream.sys disebut dengan istilah minidriver streaming.

Misalnya, perangkat pengambilan video dan pemutar DVD dapat didukung dengan minidriver streaming. Untuk informasi khusus teknologi, lihat Perangkat Pengambilan Video dan Minidriver Dvd Decoder.

Streaming minidriver mendukung semantik streaming kernel. Untuk menggunakan dokumen ini, pengembang driver harus terbiasa dengan konsep streaming kernel dasar, seperti yang dijelaskan dalam Kernel Streaming.

Driver kelas streaming dirancang untuk membuat penulisan driver perangkat keras untuk perangkat streaming lebih sederhana dengan menangani banyak aspek berinteraksi dengan sistem operasi.

  • Minidriver dapat memungkinkan driver kelas streaming untuk menangani sinkronisasi atas namanya. Misalnya, driver kelas stream dapat secara opsional menserialisasikan permintaan I/O untuk minidriver. Mengizinkan driver kelas untuk menangani sinkronisasi membuat minidriver multiprocessor aman tetapi non-reentrant. Ini cocok untuk perangkat keras kelas bawah hingga menengah.

  • Driver kelas secara otomatis menyinkronkan operasi file. Misalnya, pembukaan aliran dan perangkat diserialisasikan dengan benar tanpa minidriver menggunakan mutex, semaphores, atau peristiwa.

  • Driver kelas memisahkan implementasi semantik streaming kernel dari minidriver.

  • Driver kelas menangani semua interaksi dengan manajer PnP. Contohnya:

    • Driver kelas membuat objek perangkat fungsional atas nama minidriver.
    • Driver kelas mengelola konfigurasi sumber daya (seperti menerjemahkan alamat port, menerjemahkan dan memetakan rentang memori, dan menghubungkan gangguan).
    • Driver kelas menangani IRP PnP, seperti IRP_MN_START_DEVICE, atau IRP_MN_STOP_DEVICE.
  • Semua manajemen buffer tingkat rendah ditangani oleh driver kelas:

    • Mengalokasikan objek adaptor DMA, jika perlu.
    • Memetakan buffer dan membangun daftar sebar/kumpulkan untuk DMA.
    • Dengan benar mengunci dan membilas buffer untuk DMA dan PIO.
  • Semua validasi parameter IOCTL dilakukan oleh driver kelas.

  • Semua permintaan diatur oleh pengemudi kelas dengan menggunakan timer pengawas.

  • Minidriver tidak membuat objek perangkat, tetapi berbagi objek perangkat driver kelas sesuai kebutuhan. Ini menyimpan sumber daya sistem.

  • Hanya satu objek perangkat yang dapat dibuat untuk setiap adaptor. Beberapa subperangkat (disebut streams) yang didukung oleh adaptor diwakili oleh pin streaming kernel.