WIA-TWAIN 风险

如果 TWAIN 驱动程序使用 WIA 驱动程序的 STI 部分,则需要注意以下事项:

  1. TWAIN 数据源在访问驱动程序之前调用 IStiUSD::LockDevice 。 这会阻止 WIA 应用程序连接到 WIA 驱动程序,直到 调用 IStiUSD::UnLockDevice 。 为了尽量减少此问题,请保持对设备的访问权限受限,以便 WIA 客户端可以连接并执行操作。 这一点很重要,因为 TWAIN 在应用程序和驱动程序之间保持一对一关系。 WIA 允许多个应用程序连接到单个 WIA 驱动程序。 因此,访问 TWAIN 驱动程序的 TWAIN 应用程序可能会锁定 WIA 应用程序。 若要防止这种情况,请使用适当的锁定方法。

  2. 使用 STI 接口方法的任何应用程序或实用工具都可能会阻止访问 WIA 驱动程序。 一些示例包括监视按钮或设备状态的实用程序,以及监视系统托盘的应用程序。

  3. WIA 驱动程序应确保使用适当的锁定正确验证和隔离对 IStiUSD::RawReadDataIStiUSD::RawWriteDataIStiUSD::RawReadCommandIStiUSD::RawWriteCommandIStiUSD::Escape 的调用。

编写驱动程序时,请验证传入值,以便仅将有效数据发送到设备。

有关使用 IStiUSD::Escape 时的正确验证序列,请参阅 使用 IStiUSD 转义方法。 有关正确锁定的其他信息,请参阅 锁定和解锁最佳做法