次の方法で共有


Scan 関数 (wiamicro.h)

スキャン 関数は、デバイスからデータを読み取り、WIA フラットベッド ドライバーにデータを返します。

構文

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

パラメーター

[in, out] pScanInfo

マイクロドライバーの設定を表す SCANINFO 構造体を指定します。 これは、マイクロドライバーと WIA フラットベッド ドライバーの間の設定が同期されることを保証するために、WIA フラットベッド ドライバーによって格納されます。

lPhase

要求されたスキャン フェーズを指定します。 このパラメーターは、次のいずれかの値に設定できます。

価値 意味
SCAN_FIRST これにより、スキャンの最初のフェーズが通知されます。 マイクロドライバーは 3 つのタスクを実行します。デバイスを初期化し、SCANINFO 構造体のデータを使用してスキャンを設定し (たとえば、解像度、開始位置、デバイスの幅と高さを設定)、スキャンを開始します。 この呼び出しからデータを返す必要があります。 データは pBuffer 指すバッファーに格納する必要があり、pReceived パラメーターはバッファーに格納されるデータ量に設定する必要があります。
SCAN_NEXT これは、データ転送中に繰り返し呼び出されます。 データは pBuffer 指すバッファーに格納する必要があり、pReceived パラメーターはバッファーに格納されるデータ量に設定する必要があります。
SCAN_FINISHED これはスキャンの終了時に呼び出され、スキャン プロセスが終了します。 データは転送されません。 SCAN_FINISHEDは、ユーザーがスキャンをキャンセルした場合でも常に呼び出されます。 マイクロドライバーはデータの転送を停止し、スキャナーをリセットして、次のスキャンの準備が整う必要があります。 この関数から返されるデータは、ヘッダーなしで生形式にする必要があります。 データは、パックまたは平面、アラインまたはアライン解除、および RGB または BGR の順序で指定できます。 CMD_INITIALIZE コマンドに応じて、SCANINFO 構造体の RawDataFormatRawPixelOrder、および bNeedDataAlignment メンバーを適切に設定します。

[out] pBuffer

マイクロドライバーによってスキャンされるデータが格納されるバッファーを指定します。 このバッファーは WIA フラットベッド ドライバーによって割り当てられ、少なくとも lLength バイトの長さが保証されます。

lLength

スキャンする要求されたデータ量を指定します。 マイクロドライバーは、pBuffer が指すバッファーオーバーフィルしないでください。

[out] plReceived

pBuffer に実際にスキャンデータの量を指定します。 この値は lLength の値超えないようにしてくださいが、小さくすることもできます。

戻り値

関数が成功すると、S_OKが返されます。 関数が失敗すると、標準の COM エラー コードが返されます。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー wiamicro.h (Wiamicro.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe

関連項目

SCANINFO

WIA マイクロドライバー コマンド

WIA マイクロドライバーの構造