创建 WIA 微驱动程序

许多平板扫描仪以类似的方式进行控制。 模型之间的常见行为已抽象化为名为 WIA 平面驱动程序的 Microsoft 提供的通用驱动程序。 此驱动程序调用一个名为 microdriver 的 DLL,该 DLL 由扫描程序供应商提供,该 DLL 可实现任何所需的特定于设备的行为。 然后,WIA 平面驱动程序与微驱动程序一起可用作 WIA 微型驱动程序。 使用微驱动程序的优点是,实现和调试非常简单。 并非所有扫描程序都可以由微驱动程序支持。 它最适合在没有双工器或其他高级功能) 或需要基本功能驱动程序的情况下 (的简单设备。

注意 本节中所述的 WIA 微驱动程序是 WIA 1.0。 目前,WIA 2.0 没有相应的 WIA 微驱动程序模型。 如果开发 WIA microdriver 以在支持 WIA 2.0 (Windows Vista 或更高版本) 的Windows版本的计算机上运行,则此 WIA microdriver 将像任何其他 WIA 1.0 设备一样运行,WIA 2.0 应用程序将在 WIA 1.0 兼容模式下使用。

下图显示了 WIA microdriver 体系结构中的组件。

diagram illustrating the components in the wia microdriver architecture.

WIA 平面驱动程序通过在 microdriver 中调用 WIA 微驱动程序函数来处理来自 WIA 服务的请求。 微驱动程序必须实现其中每个函数。 SCANINFO 结构将传递给微驱动程序以存储并传达扫描参数,例如扫描窗口和分辨率。 WIA 平面驱动程序从 SCANINFO 结构读取值,但从不写入这些值。 这是微驱动程序设置 SCANINFO 成员的责任。

microdriver 不应存储扫描的任何参数,但应依赖于 SCANINFO 结构中存储的值。 这对于支持对设备的多个应用程序访问非常重要。 如果两个应用程序同时在同一设备上设置扫描,则只有一个运行微驱动程序的副本。 在这种情况下,微驱动程序使用两个不同的 SCANINFO 结构之一调用,具体取决于应用程序尝试访问设备。