Предоставление интерфейса 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. |