WIA 组件

WIA 由多个层组成,这些层在用户与硬件之间交错。 用户与 WIA 应用程序交互,该应用程序可以具有可选的用户界面。 此应用程序与 WIA 服务通信,该服务将用户的请求发送到微型驱动程序。 微型驱动程序与相关的内核模式总线驱动程序通信。 最后,总线驱动程序与硬件通信。 下图说明了构成 WIA 接口的软件组件。

说明构成 wia 接口的软件组件的关系图。

映像应用程序

映像应用程序不会直接与微型驱动程序通信,但它们通过 WIA 应用程序编程接口(WIA API)与 WIA 服务通信,以访问图像并从 WIA 设备获取数据。 这些应用程序可以使用系统提供的用户界面(UI)或设备制造商提供的用户界面。 UI 用于选择要传输的项并设置相关属性。 请注意,应用程序(而不是驱动程序)会在 UI 消除后传输所选项。 有关用于映像应用程序的 WIA API 的详细信息,请参阅 Microsoft Windows SDK 文档。

WIA 服务

WIA 服务是一个系统提供的组件,它与映像应用程序和 WIA 微型驱动程序通信。 WIA 服务是下表中列出的 COM 接口的集合,所有这些接口都在 windows SDK 文档中Microsoft介绍。 WIA 服务在独立于应用程序的进程中运行,但在与 WIA 微型驱动程序相同的进程中运行。 应用程序将设备请求定向到 WIA 服务。 然后,WIA 服务通过 WIA 设备驱动程序接口(WIA DDI)将这些请求定向到相应的微型驱动程序。 下表列出了 WIA 应用程序可以实现的 API。

WIA API DESCRIPTION
IEnumWIA_DEV_CAPS 枚举 WIA 硬件设备的功能。 设备功能包括设备支持的命令和事件。
IEnumWIA_DEV_INFO 枚举 WIA 硬件设备及其属性。 设备信息属性描述 WIA 硬件设备的安装和配置。
IEnumWIA_FORMAT_INFO 对设备的格式和媒体类型信息进行枚举。
IEnumWiaItem 枚举树的当前文件夹中的 IWiaItem 对象。 WIA 运行时系统将应用程序的每个 WIA 硬件设备表示为 IWiaItem 对象的分层树。
IWiaDataCallback 在将数据从 WIA 硬件设备传输到应用程序期间提供应用程序回调机制。
IWiaDataTransfer 支持共享内存窗口将数据从设备对象传输到应用程序,并在封送期间消除不必要的数据复制。
IWiaDevMgr 应用程序用于创建和管理映像获取设备。 他们还使用它来注册以接收设备事件。
IWiaEventCallback 应用程序用于接收 WIA 硬件设备事件的通知。
IWiaItem 使应用程序能够查询设备的功能。 IWiaItem 还提供对数据传输接口和项属性的访问权限。 此外,此接口还提供使应用程序能够控制设备的方法。
IWiaPropertyStorage 提供对 有关 IWiaItem 对象的属性的信息的访问权限。

WIA 驱动程序服务库

WIA 驱动程序服务库是一个系统提供的组件,它为 WIA 微型驱动程序提供帮助程序函数。 微型驱动程序可以调用帮助程序函数来执行任务,例如:

或者,微型驱动程序可以自行执行此类任务。 通过使用帮助程序函数,可以缩短开发时间和 WIA 微型驱动程序的大小,并且仍可以灵活地开发单个解决方案。

WIA 实用工具库

WIA 实用工具库包括调试函数(wiauDbgXxx)、常规实用工具帮助程序函数的集合和三个类:CWiauDbgFn 类、CWiauFormatConverter 类和 CWiauPropertyList 类。

WIA 微型驱动程序

WIA 微型驱动程序 是供应商提供的、用户模式组件,用于将 WIA 属性更改和命令定向到映像设备。 微型驱动程序实现 WIA DDI,WIA 服务通过 WIA DDI 调用来与微型驱动程序通信。

WIA 微型驱动程序为内核模式静止映像驱动程序提供特定于设备的用户模式接口,该接口通过驱动程序(如 USB 驱动程序)驱动映像设备。 微型驱动程序通过调用 CreateFileReadFile、WriteFileDeviceIoControl Microsoft Win32 函数(Microsoft Windows SDK 文档中所述)来与内核模式驱动程序通信。

图像处理应用程序无法直接调用 WIA 微型驱动程序。 只有 WIA 服务可以直接调用驱动程序。

内核 I/O 驱动程序

内核模式静止映像驱动程序是系统提供的或 IHV 提供的组件,用于打包数据以传送到静止映像设备,以及从静止映像设备传输。 内核模式静态图像驱动程序是总线特定的。

Microsoft 为 USB、SCSI、串行和 IEEE 1394 总线提供基于 Windows 驱动程序模型(WDM)的内核模式静态图像驱动程序。 有关这些驱动程序的详细信息,请参阅 访问静止映像设备的内核模式驱动程序

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

可以从驱动程序检索版本信息。 WIA_DIP_WIA_VERSION属性包含 WIA 版本,WIA_DIP_DRIVER_VERSION属性包含驱动程序 DLL 版本。 WIA 服务创建和维护这些属性;加载驱动程序时,WIA 服务会自动添加它们。 Windows Me 不包含这些属性。