共用方式為


掃描函式 (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 結構的 RawDataFormatRawPixelOrderbNeedDataAlignment 成員,以回應 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

另請參閱

SCANINFO

WIA Microdriver 命令

WIA Microdriver 結構