Properti KS

Properti mewakili kemampuan atau pengaturan 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 digunakan minidriver. Sekelompok properti terkait disebut sebagai kumpulan properti.

Untuk mendapatkan atau mengatur properti individual, klien mode pengguna memanggil fungsi Win32 DeviceIoControl dengan parameter dwIoControlCode diatur ke IOCTL_KS_PROPERTY. DeviceIoControl dijelaskan dalam dokumentasi Microsoft Windows SDK. Klien mode kernel harus 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. Driver kelas termasuk sebagai parameter panggilan alamat struktur KSPROPERTY 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 yang memerlukan handler yang disediakan 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 penangan untuk properti ini, KsPropertyHandler mematikan permintaan ke panggilan balik yang disediakan minidriver yang sesuai.

Minidriver menyediakan pointer ke panggilan balik dukungan propertinya dalam struktur jenis KSPROPERTY_ITEM. Minidriver mengelompokkan array struktur KSPROPERTY_ITEM terkait dalam struktur KSPROPERTY_SET . Model driver kelas yang berbeda memiliki metode yang sedikit berbeda untuk 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.