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


Предоставление интерфейса IStiUSD

WIA основан на STI. Чтобы обеспечить интеграцию мини-драйвера WIA с STI, он должен реализовать интерфейс, производный от методов интерфейса IStiUSD. Этот интерфейс должен присутствовать в мини-накопителе WIA. Интерфейс IStiUSD используется для управления устройствами (например, загрузки драйвера) и является средством, с помощью которого методы интерфейса IStiDevice взаимодействуют с устройствами с неподвижными изображениями. Для загрузки службой WIA мини-driver должен полностью реализовать интерфейс, производный от метода IStiUSD::Initialize .

Как правило, методы интерфейса IStiUSD вызываются аналогичными именованными методами, определенными интерфейсом IStiDevice . Мини-драйверы обычно реализуют методы интерфейса IStiUSD , вызывая соответствующий драйвер режима ядра. Каждый мини-накопитель должен определять все методы интерфейса, но если метод не нужен, он может просто вернуть STIERR_UNSUPPORTED.

Пример реализации интерфейса IStiUSD см. в файле примера мини-драйвера wiacamIStiUSD.cpp.

В следующей таблице перечислены и описаны все методы, определенные интерфейсом IStiUSD . Определены методы, которые должны быть реализованы или условно реализованы мини-драйверами WIA.

Метод Описание
IStiUSD::D eviceReset Сбрасывает устройство с изображением в известное инициализированное состояние.
IStiUSD::D iagnostic Выполняет диагностические тесты на устройстве с неподвижным образом. Этот метод должен реализовываться в мини-накопителе WIA.
IStiUSD::Escape Выполняет операцию ввода-вывода конкретного поставщика на устройстве неподвижного образа.
IStiUSD::GetCapabilities Возвращает возможности устройства с неподвижным изображением.
IStiUSD::GetLastErrorInfo Возвращает сведения о последней известной ошибке, связанной с устройством неподвижного образа.
IStiUSD::GetNotificationData Возвращает описание последнего события, которое произошло на устройстве с неподвижным изображением.
IStiUSD::GetStatus Возвращает состояние устройства с неподвижным изображением. Мини-накопитель WIA должен реализовать этот метод, если на его устройстве есть объекты, такие как кнопки, которые могут создавать события.
IStiUSD::Initialize Инициализирует экземпляр COM-объекта, который определяет интерфейс IStiUSD. Этот метод должен реализовываться в мини-накопителе WIA.
IStiUSD::LockDevice Блокирует устройство для монопольного использования вызывающим абонентом. Этот метод должен реализовываться в мини-накопителе WIA.
IStiUSD::RawReadCommand Считывает сведения о команде с устройства неподвижного образа.
IStiUSD::RawReadData Считывает данные с устройства неподвижного изображения.
IStiUSD::RawWriteCommand Записывает сведения о команде на устройство неподвижного образа.
IStiUSD::RawWriteData Записывает данные на устройство с неподвижным изображением.
IStiUSD::SetNotificationHandle Указывает дескриптор события, который мини-диск должен использовать для информирования вызывающей стороны о событиях устройства. Мини-накопитель WIA должен реализовать этот метод, если на его устройстве есть объекты, такие как кнопки, которые могут создавать события.
IStiUSD::UnLockDevice Закрывает порт устройства. Этот метод должен реализовываться в мини-накопителе WIA.