Поделиться через


Поддержка команд драйвера WIA

Команда устройства WIA — это запрос, отправляемый службой WIA (от имени приложения для создания образов) в мини-диск WIA с указанием выполнить определенное действие.

Ниже приведен список команд устройства WIA, которые могут быть выданы мини-накопителю:

Get-Help Значение
WIA_CMD_CHANGE_DOCUMENT Перейдите к следующему документу (только для многодокументных сканеров).
WIA_CMD_DELETE_ALL_ITEMS Удалите дерево элементов драйвера.
WIA_CMD_DIAGNOSTIC Зарезервировано корпорацией Майкрософт.
WIA_CMD_SYNCHRONIZE Перестройте дерево элементов драйвера. Все мини-накопители должны поддерживать эту команду.
WIA_CMD_TAKE_PICTURE Сделать снимок (выдается только для камер).
WIA_CMD_UNLOAD_DOCUMENT Выгрузите текущий документ (выданный только многодокументным сканерам).

Команды WIA_CMD_XXX описаны в документации по Microsoft Windows SDK. Вы можете включить собственный настраиваемый список команд.

Добавление поддержки команд устройства

Чтобы правильно настроить мини-диск WIA для создания отчетов о командах устройства, сообщите о массиве поддерживаемых команд в методе IWiaMiniDrv::d rvGetCapabilities . Пример реализации метода IWiaMiniDrv::d rvGetCapabilities см. в разделе Добавление поддержки событий прерывания.

Реализация метода IWiaMiniDrv::d rvDeviceCommand

Служба WIA вызывает метод IWiaMiniDrv::d rvDeviceCommand в ответ на вызов приложения метода IWiaItem::D eviceCommand (описано в документации по Microsoft Windows SDK). Метод IWiaMiniDrv::d rvDeviceCommand должен выполнять следующие задачи:

  1. Определите, поддерживается ли отправленная команда.

  2. Обработайте командный запрос.

Драйвер WIA должен определить элемент WIA, который должен получить команду устройства, с помощью указателя pWiasContext . Затем драйвер WIA должен обработать полученную команду устройства, предназначенную для входящего элемента WIA. Любая команда, отправленная драйверу WIA, которая не поддерживается, должна завершаться ошибкой E_INVALIDARG.

Пример реализации метода IWiaMiniDrv::d rvDeviceCommand см. в разделе Информирование приложения об изменениях дерева элементов.