Bagikan melalui


Properti KS

Properti mewakili pengaturan kemampuan atau status kontrol milik objek streaming kernel, seperti filter atau pin. Klien minidriver streaming kernel dapat mengirim permintaan properti get dan set (KSPROPERTY_TYPE_GET dan KSPROPERTY_TYPE_SET) ke filter dan pin yang telah dibuat oleh minidriver. Sekelompok properti terkait disebut sebagai kumpulan properti.

Untuk mendapatkan atau mengatur properti individual, klien mode pengguna memanggil fungsi Win32 DeviceIoControl dengan parameter dwIoControlCode yang diatur ke IOCTL_KS_PROPERTY. DeviceIoControl dijelaskan dalam dokumentasi Microsoft Windows SDK. Klien mode kernel seharusnya memanggil KsSynchronousDeviceControl.

Buffer input adalah struktur KSPROPERTY atau pembungkus yang berisi struktur KSPROPERTY dan informasi lain yang relevan dengan permintaan. Menanggapi panggilan ini, sistem operasi mengirimkan IRP ke driver kelas.

Ketika driver kelas menerima IRP yang dihasilkan, ia memanggil KsPropertyHandler. Kelas driver mencakup alamat dari struktur KSPROPERTY sebagai parameter panggilan yang mengidentifikasi spesifik permintaan properti. Permintaan properti ditangani secara otomatis di tingkat driver kelas atau oleh handler yang disediakan minidriver. Lihat Set Properti Streaming Kernel untuk informasi referensi, termasuk set properti mana yang ditangani oleh driver kelas dan mana yang memerlukan handler dari minidriver. Minidriver dapat mengganti atau menambah handler driver kelas dengan menyediakan panggilan balik untuk properti yang secara default ditangani oleh driver kelas.

Jika minidriver telah menyediakan handler untuk properti ini, KsPropertyHandler meneruskan permintaan tersebut ke callback yang disediakan oleh minidriver yang sesuai.

Minidriver menyediakan pointer ke propertinya mendukung panggilan balik dalam struktur jenis KSPROPERTY_ITEM. Minidriver mengelompokkan array struktur KSPROPERTY_ITEM yang terkait menjadi struktur KSPROPERTY_SET. Model driver kelas yang berbeda memiliki metode yang sedikit berbeda bagi minidriver untuk membuat data kumpulan properti tersedia untuk driver kelas. Anda dapat menemukan informasi khusus driver kelas dengan mengikuti tautan di Kernel Streaming.

Minidriver juga menyediakan penunjuk ke struktur KSPROPERTY_VALUES dalam struktur KSPROPERTY_ITEM. Struktur KSPROPERTY_VALUES pada gilirannya berisi array struktur KSPROPERTY_MEMBERSLIST . Di sinilah minidriver menentukan ukuran dan jenis nilai yang dapat diterima untuk properti . Setiap struktur KSPROPERTY_MEMBERSLIST berisi anggota header: lihat KSPROPERTY_MEMBERSHEADER Untuk informasi tentang cara menentukan rentang hukum atau nilai untuk properti yang didukung minidriver Anda. Anda juga dapat menemukan implementasi mekanisme ini dalam sampel Testcap di Microsoft Windows Driver Kit (WDK).

Untuk melaporkan ukuran dan jenis nilai yang dapat diterima untuk properti, driver kelas mengembalikan struktur KSPROPERTY_DESCRIPTION sebagai respons terhadap permintaan KSPROPERTY_TYPE_BASICSUPPORT dari klien.

Driver kelas dapat menambahkan daftar struktur KSPROPERTY_MEMBERSHEADER ke struktur KSPROPERTY_DESCRIPTION.