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

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

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

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

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

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

To properly set up your WIA minidriver to report device commands, report an array of supported commands in the IWiaMiniDrv::drvGetCapabilities method. For an example implementation of the IWiaMiniDrv::drvGetCapabilities method, see Adding Interrupt Event Support.

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

The WIA service calls the IWiaMiniDrv::drvDeviceCommand method in response to the application's call to the IWiaItem::DeviceCommand method (described in the Microsoft Windows SDK documentation). The IWiaMiniDrv::drvDeviceCommand method should perform the following tasks:

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

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

The WIA driver should determine the WIA item that is to receive the device command by using the pWiasContext pointer. Затем драйвер WIA должен обработать полученную команду устройства, предназначенную для входящего элемента WIA. Любая команда, отправленная драйверу WIA, которая не поддерживается, не должна быть выполнена с кодом ошибки E_INVALIDARG.

For an example implementation of the IWiaMiniDrv::drvDeviceCommand method, see Informing an Application of Item Tree Changes.