WIA 体系结构概述

WIA 作为组件对象模型实现 (COM) 进程外服务器,以确保客户端应用程序的可靠操作。

WIA 有三个main组件:WIA 服务、WIA 驱动程序服务库和供应商用户模式驱动程序。

  • WIA 服务枚举映像设备、检索设备属性、设置设备事件以及创建设备对象。

  • WIA 驱动程序服务库实现与设备无关的所有服务。

  • 供应商用户模式驱动程序将 WIA 属性和命令映射到特定设备。 有两种类型的 WIA 供应商用户模式驱动程序:

    • 微型驱动程序:这是最常见的供应商驱动程序类型。 它是实现 WIA 微型驱动程序接口的 COM 对象。 供应商可以通过此类型的驱动程序利用所有 WIA 功能和功能。

    • 微型驱动程序:此驱动程序比微型驱动程序受限得多,因此,开发更简单。 它主要用于基本扫描程序设备。 此驱动程序不是 COM 对象;它是一个 DLL,用于导出一些函数。 微型驱动程序不能用于相机设备。

下图演示了 WIA 体系结构。

说明 wia 组件的示意图。

映像应用程序

映像应用程序不会直接与微型驱动程序通信,而是通过 WIA 应用程序编程接口与 WIA 服务通信, (API) 访问图像并从 WIA 设备获取数据。 这些应用程序可以使用系统提供的通用用户界面或供应商提供的用户界面。 有关用于映像应用程序的 WIA API 的详细信息,请参阅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 驱动程序)与映像设备通信。 微型驱动程序通过调用 CreateFileReadFileWriteFileDeviceIoControl Win32 函数与内核模式驱动程序通信, (Microsoft Windows SDK文档) 。

映像应用程序无法直接调用 WIA 微型驱动程序。 仅允许 WIA 服务直接调用驱动程序。

内核 I/O 驱动程序

内核模式静态映像驱动程序是系统提供的或 IHV 提供的组件,用于向/从静止映像设备传递数据。 内核模式静态映像驱动程序特定于总线。

Microsoft 为 USB、SCSI 和 IEEE 1394 总线提供基于 WDM 的内核模式静态映像驱动程序。 有关详细信息 ,请参阅访问静态映像设备的Kernel-Mode驱动程序

仅当其映像设备与 Microsoft 提供的内核模式 I/O 驱动程序不兼容时,供应商才能提供内核模式静态映像驱动程序。