扫描函数 (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
指定表示 microdriver 设置的 SCANINFO 结构。 这由 WIA Flatbed 驱动程序存储,以确保微驱动程序和 WIA Flatbed 驱动程序之间的设置已同步。
lPhase
指定请求的扫描阶段。 此参数可以设置为以下值之一。
价值 | 意义 |
---|---|
SCAN_FIRST | 这表示扫描的第一个阶段。 microdriver 执行三项任务:它初始化设备,它使用 SCANINFO 结构中的数据来设置扫描(例如,设置分辨率、开始位置、设备上的宽度和高度),并启动扫描。 必须从此调用返回数据。 必须将数据放入 pBuffer 指向的缓冲区中,pReceived 参数必须设置为缓冲区中放置的数据量。 |
SCAN_NEXT | 在数据传输期间,将重复调用此作。 数据应放入 pBuffer 指向的缓冲区中,pReceived 参数必须设置为缓冲区中放置的数据量。 |
SCAN_FINISHED | 这将在扫描结束时调用以终止扫描过程。 不应传输任何数据。 即使用户取消扫描,也会始终调用SCAN_FINISHED。 微驱动程序应停止传输数据,并且应重置扫描程序,以便它准备好进行下一次扫描。 从此函数返回的数据应采用原始格式,不带任何标头。 数据可以打包或平面、对齐或未对齐,并按 RGB 或 BGR 顺序排列。 设置 RawDataFormat、RawPixelOrder,以及 bNeedDataAlignmentSCANINFO 结构的成员,以响应 CMD_INITIALIZE 命令。 |
[out] pBuffer
指定将由微驱动程序填充扫描数据的缓冲区。 此缓冲区由 WIA 平面驱动程序分配,并保证长度至少 lLength 字节。
lLength
指定要扫描的请求数据量。 微型驱动程序绝不能过度填充 pBuffer指向的缓冲区。
[out] plReceived
指定实际扫描到 pBuffer的数据量。 此值不应超过 lLength的值,但可以更少。
返回值
如果函数成功,它将返回S_OK。 如果函数失败,它将返回标准 COM 错误代码。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | wiamicro.h (包括 Wiamicro.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |