扫描函数 (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 结构的 RawDataFormat、RawPixelOrder 和 bNeedDataAlignment 成员。 |
[out] pBuffer
指定将由微型驱动程序使用扫描的数据填充的缓冲区。 此缓冲区由 WIA 平面驱动程序分配,保证长度至少为 lLength 字节。
lLength
指定要扫描的请求数据量。 微型驱动程序不得过度填充 pBuffer 指向的缓冲区。
[out] plReceived
指定实际扫描到 pBuffer 中的数据量。 此值不应超过 lLength 的值,但可以小于该值。
返回值
如果函数成功,则返回S_OK。 如果函数失败,它将返回标准 COM 错误代码。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | wiamicro.h (包括 Wiamicro.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |