扫描函数 (wiamicro.h)

Scan 函数从设备读取数据,并将数据返回到 WIA Flatbed 驱动程序。

语法

WIAMICRO_API HRESULT Scan(
  [in, out] PSCANINFO pScanInfo,
            LONG      lPhase,
  [out]     PBYTE     pBuffer,
            LONG      lLength,
  [out]     LONG      *plReceived
);

参数

[in, out] pScanInfo

指定表示微型驱动程序设置的 SCANINFO 结构。 这由 WIA Flatbed 驱动程序存储,以确保微驱动程序和 WIA Flatbed 驱动程序之间的设置是同步的。

lPhase

指定请求的扫描阶段。 此参数可以设置为以下值之一。

含义
SCAN_FIRST 这表示扫描的第一阶段。 微驱动程序执行三项任务:初始化设备,使用 SCANINFO 结构中的数据设置扫描 (例如,在设备上设置分辨率、开始位置、宽度和高度) ,然后启动扫描。 必须从此调用返回数据。 必须将数据放入 pBuffer 指向的缓冲区中,并且 pReceived 参数必须设置为放入缓冲区中的数据量。
SCAN_NEXT 这会在数据传输过程中重复调用。 数据应放入 pBuffer 指向的缓冲区中, pReceived 参数必须设置为放入缓冲区中的数据量。
SCAN_FINISHED 这将在扫描结束时调用以终止扫描过程。 不应传输任何数据。 即使用户取消扫描,也始终调用SCAN_FINISHED。 微驱动程序应停止传输数据,并且应重置扫描程序,以便为下一次扫描做好准备。 从此函数返回的数据应采用原始格式,不带任何标头。 数据可以是打包的或平面的、对齐的或未对齐的,以及 RGB 或 BGR 顺序。 为响应 CMD_INITIALIZE 命令,适当地设置 SCANINFO 结构的 RawDataFormatRawPixelOrderbNeedDataAlignment 成员。

[out] pBuffer

指定将由微型驱动程序使用扫描的数据填充的缓冲区。 此缓冲区由 WIA 平面驱动程序分配,保证长度至少为 lLength 字节。

lLength

指定要扫描的请求数据量。 微型驱动程序不得过度填充 pBuffer 指向的缓冲区。

[out] plReceived

指定实际扫描到 pBuffer 中的数据量。 此值不应超过 lLength 的值,但可以小于该值。

返回值

如果函数成功,则返回S_OK。 如果函数失败,它将返回标准 COM 错误代码。

要求

要求
目标平台 桌面
标头 wiamicro.h (包括 Wiamicro.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe

另请参阅

SCANINFO

WIA 微驱动程序命令

WIA 微型驱动程序结构