掃描函式 (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 驅動程式儲存,以確保 microdriver 與 WIA Flatbed 驅動程式之間的設定會同步處理。
lPhase
指定要求的掃描階段。 這個參數可以設定為下列其中一個值。
值 | 意義 |
---|---|
SCAN_FIRST | 這表示掃描的第一個階段。 microdriver 會執行三項工作:它會初始化裝置,它會使用 SCANINFO 結構中的數據來設定掃描 (例如,設定解析度、開始位置、裝置上的寬度和高度) ,然後啟動掃描。 數據必須從這個呼叫傳回。 數據必須放入 pBuffer 指向的緩衝區中, 而且 pReceived 參數必須設定為緩衝區中放置的數據量。 |
SCAN_NEXT | 這會在數據傳輸期間重複呼叫。 數據應該放入 pBuffer 指向的緩衝區,而且 pReceived 參數必須設定為緩衝區中放入的數據量。 |
SCAN_FINISHED | 這會在掃描結束時呼叫,以終止掃描程式。 不應傳輸任何數據。 即使使用者取消掃描,仍會呼叫SCAN_FINISHED。 Microdriver 應該停止傳輸數據,而且應該重設掃描器,使其準備好進行下一次掃描。 從此函式傳回的數據應該為未經處理的格式,而不需要任何標頭。 數據可以是封裝或平面、對齊或未對齊,並以 RGB 或 BGR 順序排列。 適當地設定 SCANINFO 結構的 RawDataFormat、RawPixelOrder 和 bNeedDataAlignment 成員,以回應 CMD_INITIALIZE 命令。 |
[out] pBuffer
指定由 microdriver 填入掃描數據的緩衝區。 此緩衝區是由 WIA Flatbed Driver 所配置,而且保證長度至少為 lLength 位元組。
lLength
指定要掃描的要求數據量。 microdriver 絕對不能過度填滿 pBuffer 所指向的緩衝區。
[out] plReceived
指定實際掃描到 pBuffer 的數據量。 這個值絕對不能超過 lLength 的值,但可以減少。
傳回值
如果函式成功,則會傳回S_OK。 如果函式失敗,它會傳回標準 COM 錯誤碼。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | wiamicro.h (包含Wiamicro.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |