可选命令

微驱动程序可以实现以下命令,但不需要这样做。

支持的文件格式命令 (CMD_GETSUPPORTEDFILEFORMATS)

WIA 平面驱动程序调用以获取其他文件格式的数量。 已传递的 VAL 结构应填充两个成员:lVal 应设置为附加文件格式的数目;pGuid 应指向图像格式 GUID 数组。 为此数组分配的内存由微驱动程序所有,只能由它释放。

图像格式在 wiadef.h 中列出,也可以定义为自定义格式。 请注意,由于 BMP (文件) 和 MEMORYBMP (内存) 格式是必需的格式,WIA 平面驱动程序会自动添加它们。 微驱动程序不应将其添加到其扩展列表中。

除非设备可以支持额外的文件格式,否则此命令是可选的。

CMD_GETSUPPORTEDMEMORYFORMATS

WIA 平面驱动程序调用以获取其他内存格式的数量。 传递的 VAL 结构中有两个成员需要填充:lVal 应设置为附加内存格式的数量;pGuid 应指向图像格式 GUID 数组。 为此数组分配的内存由微驱动程序所有,只能由它释放。

图像格式在 wiadef.h 中列出,也可以定义为自定义格式。 请注意,由于 BMP (文件) 和 MEMORYBMP (内存) 格式是必需的格式,WIA 平面驱动程序会自动添加它们。 微驱动程序不应将其添加到其扩展列表中。

除非设备可以支持额外的内存格式,否则此命令是可选的。

CMD_SETFORMAT

类驱动程序发送此命令以设置应用程序请求的当前格式。 VAL 结构的 pGuid 成员包含图像格式 GUID。 微驱动程序应在专用上下文中保存此图像格式 ID,以便跟踪当前图像格式设置。

仅当微驱动程序报告扩展格式时,才需要支持此命令。 由于类驱动程序无法以扩展格式验证数据,因此微驱动程序有责任生成适当的数据。 以扩展格式传输数据时,应传输所有数据,包括图像标头。 例如,如果驱动程序报告它支持 JPEG 格式,则必须传输所有 JPEG,而不仅仅是图像位。

类驱动程序拥有 VAL 结构的 pGuid 成员指向的内存,因此微驱动程序不得释放它。

请注意,此命令不会影响微驱动程序响应对其 Scan 函数的调用的方式。 与往常一样,微驱动程序必须检查此函数的 lPhasepScanInfolLength 参数的值,并将数据放在 pBufferpReceived 参数指向的缓冲区中。

仅支持WiaImgFmt_BMP和WiaImgFmt_MEMORYBMP格式(微驱动程序的默认格式)的文件的驱动程序可以接收CMD_SETFORMAT命令。 这些驱动程序可以忽略此命令,因为类驱动程序使用默认格式处理所有数据传输。

CMD_SETSCANMODE

WIA 平面驱动程序调用以设置微驱动程序设备的扫描模式(预览模式或最终模式)。 VAL 结构的 lVal 成员将包含以下值之一,这两个值都在 wiamicro.h 中定义:

  • SCANMODE_PREVIEWSCAN - 预览扫描模式

  • SCANMODE_FINALSCAN • 最终扫描模式

CMD_SETSTIDEVICEHKEY

WIA Flatbed Driver 调用,以允许 microdriver 读取已安装注册表部分中的注册表项。 此命令向 microdriver 提供 STI 设备的已安装注册表 HKEY,以便它可以访问其设备的专用注册表值。 VAL 结构中的 pHandle 成员将包含一个指针,该指针指向在 STI 的 IStiUSD::Initialize 方法期间提供给 WIA 平板扫描仪驱动程序的 HKEY。 这是已安装设备部分的顶级 HKEY。 可以使用此 HKEY 直接打开 DeviceData 密钥。 有关详细信息,请参阅 WIA 设备的 INF 文件

注释

此密钥 由 WIA 平面驱动程序打开和关闭。 它还仅在此命令和CMD_INITIALIZE(请参阅 必需命令)期间有效。 这些命令返回后,密钥不再有效。 不能缓存 HKEY 值。