Menginisialisasi Minidriver WIA

Langkah pertama dalam mengimplementasikan antarmuka IWiaMiniDrv adalah menginisialisasi minidriver dan membuat pohon hierarkis item driver. Untuk melakukan ini, layanan WIA memanggil metode IWiaMiniDrv::d rvInitializeWia setiap kali aplikasi klien berniat menggunakan perangkat. Jika dua aplikasi atau lebih secara bersamaan menggunakan perangkat, layanan WIA memanggil metode ini untuk setiap aplikasi. Dalam metode ini, minidriver biasanya melakukan hal berikut:

  1. Menginisialisasi parameter yang diteruskan dari layanan WIA.

  2. Menyimpan antarmuka perangkat STI yang diacu oleh pStiDevice. Ini dilakukan agar metode IStiDevice::LockDevice dan IStiDevice::UnLockDevice dapat digunakan untuk mengunci atau membuka kunci perangkat WIA.

  3. Cache bstrDeviceID dan bstrRootFullItemName dalam variabel anggota sehingga dapat digunakan oleh metode lain.

  4. Membuka handel ke perangkat. (Langkah ini direkomendasikan untuk port yang tidak dibagikan seperti USB, SCSI, dan 1394.)

  5. Membangun pohon item, seperti yang dijelaskan dalam Membuat Pohon Item Driver WIA.

Metode IWiaMiniDrv::d rvInitializeWia juga dapat digunakan untuk membuat dan menginisialisasi array dan struktur dinamis yang digunakan driver. Misalnya, array perintah dan peristiwa yang didukung driver dapat dibuat untuk digunakan nanti oleh metode IWiaMiniDrv::d rvGetCapabilities .

Catatan Metode IWiaMiniDrv::d rvGetCapabilities mungkin dipanggil sebelum IWiaMiniDrv::d rvInitializeWia dipanggil. Ini dapat terjadi ketika layanan WIA perlu meminta informasi peristiwa sebelum aplikasi ada untuk menggunakan perangkat. Metode IWiaMiniDrv::d rvInitializeWia hanya dipanggil ketika aplikasi memberi sinyal niatnya untuk menggunakan perangkat.

Melacak Koneksi Aplikasi

Seperti yang dinyatakan sebelumnya, ketika aplikasi berniat untuk berkomunikasi dengan perangkat WIA, layanan WIA memanggil metode IWiaMiniDrv::d rvInitializeWia driver yang sesuai. Ketika aplikasi selesai dengan perangkat dan merilis semua referensi WIA ke dalamnya, layanan WIA memanggil metode IWiaMiniDrv::d rvUnInitializeWia driver yang sesuai. Perhatikan bahwa WIA mendukung beberapa koneksi aplikasi simultan. Ini berarti bahwa dua aplikasi atau lebih dapat meminta antarmuka WIA yang terkait dengan perangkat yang sama. Namun, itu tidak berarti bahwa driver harus menangani permintaan simultan; layanan WIA memastikan bahwa hanya satu permintaan yang dikirim ke driver pada satu waktu. Namun, layanan WIA dapat memanggil metode IWiaMiniDrv::d rvInitializeWia beberapa kali sebelum memanggil metode IWiaMiniDrv::d rvUnInitializeWia .

Mengapa informasi ini berguna? Seringkali ada sumber daya yang mungkin dibutuhkan driver ketika aplikasi menggunakannya, seperti pohon item driver WIA, pustaka pemfilteran gambar, dan lainnya. Karena sumber daya ini dapat memakan memori dalam jumlah besar, yang terbaik adalah membongkarnya ketika tidak diperlukan.

Catatan Metode IWiaMiniDrv::d rvInitializeWia dan IWiaMiniDrv::d rvUnInitializeWia digunakan untuk menginformasikan driver koneksi aplikasi saja. Layanan WIA dapat memanggil metode driver lain tanpa terlebih dahulu memanggil IWiaMiniDrv::d rvInitializeWia, yang berarti bahwa layanan WIA tidak selalu memanggil IWiaMiniDrv::d rvUnInitializeWia ketika selesai. Metode yang disebut adalah metode informasi yang tidak memerlukan item WIA, seperti IWiaMiniDrv::d rvGetCapabilities dan IWiaMiniDrv::d rvGetWiaFormatInfo.

Bagian ini berisi topik berikut:

Pesanan Panggilan untuk Fungsi Minidriver

Memuat dan Membongkar Minidriver WIA

Menyambungkan dan Memutuskan Sambungan Aplikasi WIA

Melaporkan Status Minidriver WIA