Scan 関数 (wiamicro.h)

Scan 関数は、デバイスからデータを読み取り、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 エラー コードが返されます。

要件

要件
対象プラットフォーム デスクトップ
Header wiamicro.h (Wiamicro.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe

こちらもご覧ください

SCANINFO

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

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