Создание микроdriver WIA
Многие планшетные сканеры контролируются аналогичным образом. Общее поведение моделей было абстрагировано в общий драйвер, предоставляемый Корпорацией Майкрософт, который называется wia Flatbed Driver. Этот драйвер вызывает библиотеку DLL, называемую microdriver, предоставляемую поставщиком сканера, которая реализует любое необходимое поведение устройства. Драйвер WIA Flatbed Вместе с микроотводом затем можно использовать в качестве мини-драйвера WIA. Преимущество использования microdriver заключается в том, что его очень легко реализовать и отладить. Микродрайвер поддерживает не все сканеры. Он наиболее подходит для простых устройств (без дуплексера или других расширенных функций) или когда требуется драйвер базовой функциональности.
Примечание Микродрайверы WIA, описанные в этом разделе, — это WIA 1.0. В настоящее время для WIA 2.0 отсутствует соответствующая модель микродрайвера WIA. Если вы разрабатываете микродрайвер WIA для работы на компьютере с версией Windows, поддерживающей WIA 2.0 (Windows Vista или более поздней версии), этот микроdriver WIA будет работать как любое другое устройство WIA 1.0 и будет использоваться приложениями WIA 2.0 в режиме совместимости WIA 1.0.
На следующей схеме показаны компоненты в архитектуре микроdriver WIA.
Драйвер WIA Flatbed обрабатывает запросы от службы WIA, вызывая функции микроотвертки WIA в микродрайвере. Микродрайвер должен реализовывать каждую из этих функций. Структура SCANINFO передается в микроdriver для хранения и передачи параметров сканирования, таких как окно сканирования и разрешение. Драйвер WIA Flatbed считывает значения из структуры SCANINFO, но никогда не записывает их. Микродрайвер отвечает за настройку членов SCANINFO.
Microdriver не должен хранить параметры для сканирования, но должен полагаться на значения, хранящиеся в структуре SCANINFO . Это важно для поддержки доступа нескольких приложений к устройству. Если два приложения настраивают проверку на одном устройстве одновременно, запущена только одна копия microdriver. В этом случае микродрайвер вызывается с одной из двух разных структур SCANINFO в зависимости от того, какое приложение пытается получить доступ к устройству.