Обзор архитектуры WIA
WIA реализована как сервер com-сервер, обеспечивающий надежную работу клиентских приложений.
WIA включает три main компонента: службу WIA, библиотеку службы драйверов WIA и драйвер пользовательского режима поставщика.
Служба WIA перечисляет устройства обработки изображений, извлекает свойства устройства, настраивает события для устройств и создает объекты устройства.
Библиотека службы драйверов WIA реализует все службы, не зависящие от устройств.
Драйвер пользовательского режима поставщика сопоставляет свойства и команды WIA с конкретным устройством. Существует два типа драйверов в пользовательском режиме поставщика WIA:
Minidriver. Это наиболее распространенный тип драйвера поставщика. Это COM-объект, реализующий интерфейсы мини-драйвера WIA. Поставщик может воспользоваться всеми возможностями и функциями WIA с этим типом драйвера.
Microdriver: этот драйвер гораздо более ограничен, чем мини-диск, и, следовательно, проще разрабатывать. Он используется в основном для базовых устройств сканера. Этот драйвер не является COM-объектом; это библиотека DLL, которая экспортирует несколько функций. Микродрайверы нельзя использовать для устройств камеры.
На следующей схеме показана архитектура WIA.
Приложения для обработки изображений
Приложения для обработки изображений не взаимодействуют напрямую с мини-накопителем, а взаимодействуют со службой WIA через api программирования WIA для доступа к изображениям и получения данных с устройств WIA. Эти приложения могут использовать общий, предоставляемый системой пользовательский интерфейс или предоставленный поставщиком пользовательский интерфейс. Дополнительные сведения об API WIA для приложений для создания образов см. в документации по Microsoft Windows SDK.
Служба WIA
Служба WIA — это системный компонент, который взаимодействует с приложениями для обработки изображений и мини-накопителями WIA. Служба WIA выполняется в отдельном процессе от приложений и в том же процессе, что и мини-накопители WIA. Приложения направляют запросы устройств к службе WIA, которая, в свою очередь, направляет запросы к соответствующему мини-накопителю через интерфейс драйвера устройства WIA (DDI).
Библиотека служб драйверов WIA
Библиотека служб драйверов WIA — это системный компонент, который предоставляет вспомогательные функции для мини-драйверов WIA. Мини-диск может вызывать вспомогательные функции для выполнения следующих задач:
Инициализируйте дерево элементов драйвера WIA.
Чтение, запись и проверка свойств устройства.
Передача данных.
Кроме того, мини-диск может выполнять такие задачи самостоятельно. Используя вспомогательные функции, вы можете сократить время разработки и размер мини-драйвера WIA, сохраняя гибкость при разработке отдельных решений.
Мини-накопители wia User-Mode
Мини-накопители WIA — это предоставляемые поставщиком компоненты в пользовательском режиме, которые направляют изменения свойств и команды WIA на устройство создания образов. Мини-диск реализует WIA DDI, который вызывается службой WIA для связи с мини-накопителем.
Мини-диск WIA реализует стандартные интерфейсы мини-драйвера WIA. Мини-драйвер взаимодействует с устройством для создания образов через стандартный драйвер режима ядра Microsoft Windows, например USB-драйвер. Мини-драйвер взаимодействует с драйвером режима ядра, вызывая функции Win32 CreateFile, ReadFile, WriteFile и DeviceIoControl (описаны в документации по Microsoft Windows SDK).
Приложение для обработки изображений не может выполнять прямые вызовы к мини-накопителю WIA. Только службе WIA разрешено вызывать драйвер напрямую.
Драйверы ввода-вывода ядра
Драйверы образов в режиме ядра — это предоставляемые системой компоненты или компоненты, предоставляемые IHV, которые доставляют данные на устройство неподвижного образа или из нее. Драйвер образа в режиме ядра зависит от шины.
Корпорация Майкрософт предоставляет драйверы образов на основе WDM в режиме ядра для шин USB, SCSI и IEEE 1394. Дополнительные сведения см. в статье Доступ к драйверам Kernel-Mode для устройств с изображениями .
Поставщик должен предоставить драйвер образа в режиме ядра только в том случае, если его устройство для создания образов несовместимо с драйверами ввода-вывода, предоставляемыми Корпорацией Майкрософт, в режиме ядра.