Menantang pemindai yang terputus dengan Penantang WSD

Penting

Fungsionalitas Penantang WSD tidak digunakan lagi dan semua dokumentasi terkait Penantang WSD akan diarsipkan ke dokumentasi versi sebelumnya.

Driver pemindai layanan web dapat menantang pemindai yang terputus untuk membangun kembali komunikasi dengan perangkat ketika pemindai kembali online. Untuk menantang pemindai yang terputus, driver menggunakan WSD Challenger DLL (WSDCHNGR.DLL) yang disediakan dengan Windows Vista. Layanan Windows Image Acquisition (WIA) juga menggunakan WSDCHNGR.DLL untuk secara aktif memantau semua perangkat pemindai WSDScan dan memungkinkan driver merespons tantangan setelah kegagalan komunikasi perangkat.

Tantangan untuk kelas perangkat dimulai oleh fungsi WSDCHNGRChallengeDeviceClass WSD Challenge. Driver WIA biasanya tidak harus langsung memanggil fungsi ini karena layanan WIA memanggilnya untuk semua perangkat WIA.

Karena driver WIA dibongkar tak lama setelah perangkat yang didukungnya terputus, driver itu sendiri tidak dapat menyimpan WSDCHNGR.DLL dimuat. Oleh karena itu, driver tidak dapat terus memantau tantangan WSD dan tidak dapat terhubung kembali ke perangkat ketika kembali online. Sebagai gantinya, driver WIA yang diinstal dengan menggunakan driver mode kernelWSDScan.sysdapat menggunakan layanan WIA untuk menantang kelas perangkat dan memungkinkan tantangan pemantauan untuk melanjutkan setelah driver dibongkar.

Biasanya, driver WIA yang menggunakan WSDScan.sys hanya menggunakan fungsi WSD Challenger berikut:

WSDCHNGRInitialize
Menginisialisasi antarmuka WSD Challenger yang digunakan klien driver WIA. Panggil fungsi ini ketika driver dimuat.

WSDCHNGRShutdown
Mematikan antarmuka WSD Challenger yang digunakan klien driver WIA. Panggil fungsi ini ketika driver dibongkar.

Ketika pematian ini terjadi, jika perangkat adalah perangkat kelas WSDScan, layanan WIA terus menjalankan pemantauan tantangan WSD untuk perangkat setelah driver dibongkar dan menghentikan antarmuka Tantangan layanan webnya.

WSDCHNGRRegisterDeviceToChallenge
Mendaftarkan perangkat yang akan ditantang. Panggil fungsi ini setelah driver mengalami potensi kegagalan komunikasi. Perangkat yang sama dapat didaftarkan untuk tantangan lebih dari sekali. WSDCHNGRRegisterDeviceToChallenge mengembalikan S_OK jika perangkat pertama berhasil didaftarkan. Fungsi ini mengembalikan S_FALSE ketika dipanggil untuk perangkat yang sudah terdaftar untuk ditantang.

Contoh kode berikut menunjukkan cara menggunakan fungsi Tantangan WSD ini untuk menginisialisasi Penantang WSD dan cara mendaftarkan perangkat pemindai untuk tantangan setelah potensi kegagalan komunikasi:

Contoh Makro untuk Memfilter Kode Kesalahan

Contoh Kode untuk Menantang Perangkat yang Berpotensi Terputus

Contoh Kode untuk Menerapkan Metode Pembantu

Untuk informasi selengkapnya tentang definisi dan variabel yang digunakan dalam contoh ini, lihat Definisi dan Variabel yang Digunakan dalam Contoh.