Peristiwa perangkat gambar diam

Peristiwa perangkat gambar diam adalah kejadian tingkat perangkat yang harus diberi tahu perangkat lunak tingkat atas, jika perangkat lunak tersebut telah meminta pemberitahuan tersebut. Minidriver mode pengguna bertanggung jawab untuk menentukan sebagian besar peristiwa perangkat dan mengirimkan pemberitahuan saat peristiwa terjadi. Secara umum, peristiwa menunjukkan bahwa perangkat lunak tingkat atas akan diperlukan untuk melakukan beberapa tindakan.

Peristiwa perangkat gambar diam yang khas adalah deteksi tombol pendorongan yang ditekan. Misalnya, pemindai mungkin memberi pengguna tombol terpisah untuk memulai pemindaian teks dan foto. Ketika tombol ditekan, perangkat lunak tingkat atas akan diperlukan untuk menampilkan atau menyimpan gambar. Monitor peristiwa gambar diam mendeteksi bahwa peristiwa telah terjadi (menggunakan antarmuka IStiDevice COM) dan dapat memanggil aplikasi gambar diam yang sebelumnya terdaftar (menggunakan antarmuka IStillImage COM).

Peristiwa perangkat gambar diam diwakili oleh GUID. Dalam sti.h, Microsoft mendefinisikan peristiwa perangkat gambar diam berikut:

GUID Peristiwa Tujuan
GUID_DeviceArrivedLaunch Perangkat gambar diam baru saja dilampirkan ke sistem.
GUID_ScanImage Gambar harus dipindai ke dalam komputer.
GUID_ScanFaxImage Gambar harus dipindai ke komputer lalu difaks.
GUID_ScanPrintImage Gambar harus dipindai ke komputer lalu dicetak.
GUID_STIUserDefined1 Tombol yang dapat difinisikan pengguna telah ditekan.
GUID_STIUserDefined2 Tombol yang dapat difinisikan pengguna telah ditekan.
GUID_STIUserDefined3 Tombol yang dapat difinisikan pengguna telah ditekan.

Pengembang minidriver mode pengguna harus menggunakan GUID peristiwa yang telah ditentukan sebelumnya ini jika memungkinkan. Jika GUID ini tidak sesuai, GUID untuk peristiwa khusus perangkat harus ditentukan.

Untuk menentukan peristiwa perangkat gambar diam, Anda harus:

  • Tentukan GUID untuk setiap peristiwa.

  • Sertakan setiap GUID dalam file INF driver mode pengguna.

Dalam file INF driver, setiap spesifikasi GUID harus menyertakan tanda bintang (yang berarti "semua aplikasi") atau daftar aplikasi tertentu, yang menunjukkan aplikasi mana yang harus dimulai ketika peristiwa terjadi. Monitor peristiwa gambar diam menggunakan daftar ini untuk menyediakan penugasan default aplikasi ke peristiwa. Pengguna dapat memodifikasi penugasan ini dengan Pemindai dan Kamera Panel Kontrol.

Notifikasi Kejadian

Driver harus memantau perangkat (menggunakan I/O asinkron atau polling) untuk menentukan kapan peristiwa yang terkait dengan setiap GUID terjadi. Bergantung pada kemampuan perangkat, driver dapat memberi tahu klien tentang terjadinya peristiwa perangkat baik secara asinkron atau dengan menanggapi permintaan untuk melakukan polling perangkat. Semua driver yang mampu mengirimkan pemberitahuan peristiwa perangkat (dengan salah satu metode) harus mengatur bendera STI_GENCAP_NOTIFICATIONS dalam struktur STI_DEV_CAPS perangkat. Driver yang mendukung polling, dan bukan pemberitahuan asinkron, juga harus mengatur bendera STI_GENCAP_POLLING_NEEDED dalam struktur yang sama. (Kemampuan ini juga harus ditunjukkan menggunakan kata kunci Kemampuan dalam file INF untuk perangkat gambar diam.)

Jika driver mendukung pemberitahuan peristiwa asinkron, pemantau peristiwa memanggil IStiUSD::SetNotificationHandle untuk meminta pemberitahuan dan menyediakan penanganan peristiwa. Ketika peristiwa perangkat terjadi, driver harus memberi tahu pemantau peristiwa dengan memanggil SetEvent (lihat dokumentasi Microsoft Windows SDK), menggunakan handel peristiwa sebagai argumen. Klien kemudian dapat memanggil IStiUSD::GetNotificationData untuk mendapatkan GUID peristiwa.

Jika polling diperlukan, pemantau peristiwa memanggil IStiUSD::GetStatus untuk melakukan polling driver, yang pada gilirannya harus melakukan polling perangkat dan mengembalikan hasil dalam struktur STI_DEVICE_STATUS .