MINIDRV_TRANSFER_CONTEXT構造体 (wiamindr_lh.h)

MINIDRV_TRANSFER_CONTEXT構造体は、メモリ コールバック データ転送またはファイル データ転送に必要なイメージやその他の情報を格納するために使用されます。

構文

typedef struct _MINIDRV_TRANSFER_CONTEXT {
  LONG                lSize;
  LONG                lWidthInPixels;
  LONG                lLines;
  LONG                lDepth;
  LONG                lXRes;
  LONG                lYRes;
  LONG                lCompression;
  GUID                guidFormatID;
  LONG                tymed;
  LONG_PTR            hFile;
  LONG                cbOffset;
  LONG                lBufferSize;
  LONG                lActiveBuffer;
  LONG                lNumBuffers;
  BYTE                *pBaseBuffer;
  BYTE                *pTransferBuffer;
  BOOL                bTransferDataCB;
  BOOL                bClassDrvAllocBuf;
  LONG_PTR            lClientAddress;
  IWiaMiniDrvCallBack *pIWiaMiniDrvCallBack;
  LONG                lImageSize;
  LONG                lHeaderSize;
  LONG                lItemSize;
  LONG                cbWidthInBytes;
  LONG                lPage;
  LONG                lCurIfdOffset;
  LONG                lPrevIfdOffset;
} MINIDRV_TRANSFER_CONTEXT, *PMINIDRV_TRANSFER_CONTEXT;

メンバー

lSize

このMINIDRV_TRANSFER_CONTEXT構造体のサイズをバイト単位で指定します。

lWidthInPixels

現在のイメージの幅をピクセル単位で指定します。 このメンバーの値は、 WIA_IPA_PIXELS_PER_LINE 共通項目プロパティから派生します。

lLines

現在のイメージ内の行の合計数 (水平方向のピクセル行の数) を指定します。 このメンバーの値は、 WIA_IPA_NUMBER_OF_LINES 共通項目プロパティから派生します。

lDepth

現在のイメージの色深度の値をピクセルあたりのビット数で指定します。 このメンバーの値は、 WIA_IPA_DEPTH 共通項目プロパティから派生します。

lXRes

イメージの現在の水平方向の解像度を 1 インチあたりのピクセル単位で指定します。 このメンバーの値は、 WIA_IPS_XRES スキャナー項目プロパティから派生します。

lYRes

イメージの現在の垂直方向の解像度を 1 インチあたりのピクセル単位で指定します。 このメンバーの値は、 WIA_IPS_YRES スキャナー項目プロパティから派生します。

lCompression

デバイスで使用される圧縮の種類を指定します。 このメンバーの値は、 WIA_IPA_COMPRESSION 共通項目プロパティから派生します。

guidFormatID

デバイスのデータ形式を示す GUID を指定します。 このメンバーの値は、 WIA_IPA_FORMAT 共通項目プロパティから派生します。

tymed

データ転送の種類を指定します。 指定するデータ転送は、メモリ コールバック転送 (TYMED_CALLBACKまたはTYMED_MULTIPAGE_CALLBACK) またはファイル転送 (TYMED_FILEまたはTYMED_MULTIPAGE_FILE) のいずれかです。 このメンバーの値は、 WIA_IPA_TYMED 共通項目プロパティから派生します。

このメンバーは、 bTransferDataCB メンバー内のそのメンバーに関連する情報を伝達します。 詳細については、「解説」を参照してください。

hFile

ファイル転送中に使用される開いているファイルへのハンドルを指定します。 ミニドライバーは、このメンバーを使用しないでください。 詳細については、「解説」を参照してください。

cbOffset

この転送中に使用される次のバッファー位置の現在のオフセットをバイト単位で指定します。

lBufferSize

転送バッファーの合計サイズを指定します。

lActiveBuffer

現在の転送に使用するバッファーを指定します。 このメンバーの値は、1 から lNumBuffers の範囲である必要があります。

lNumBuffers

データ転送に使用できるバッファーの数を指定します。 この値は現在、1 または 2 のいずれかです。

pBaseBuffer

基本転送バッファーの先頭を指します。

pTransferBuffer

現在の転送バッファーの先頭を指します。 ダブル バッファリングが使用されるコールバック転送の場合、このメンバーは 2 つのバッファー間で交互に、最初のバッファーの先頭を指し、次に 2 番目のバッファーの先頭を指します。

bTransferDataCB

データ転送がメモリ コールバック転送かファイル転送かを指定します。 転送がメモリ コールバック転送の場合は TRUE 、転送がファイル転送の場合は FALSE に設定されます。 ファイル転送の場合、WIA サービスは通常、コールバック ルーチンを提供します。これにより、アプリケーションはファイル転送の状態に関する更新プログラムをミニドライバーから受け取ることができます。 (WIA サービスは、アプリケーションが独自のコールバック ルーチンを提供する場合にコールバック ルーチンを提供します。詳細については、「IWiaMiniDrvCallback COM インターフェイス」を参照してください)。ファイル転送の場合、ミニドライバーは pIWiaMiniDrvCallBack メンバーに格納されている値をチェックする必要があります。 そのメンバーが NULL の場合、WIA サービスはコールバック ルーチンを提供しないため、ドライバーは呼び出しを試みてはいけません。 メモリ コールバック転送の場合、WIA サービスは常にコールバックを提供します。

このメンバーは、そのメンバーに関連する情報を 、結び付けた メンバーで伝達します。 詳細については、「解説」を参照してください。

bClassDrvAllocBuf

WIA サービスが転送バッファーを割り当てたかどうかを指定します。 この値は、WIA サービスがバッファーを割り当てた場合は TRUE 、そうでない場合は FALSE です。 その場合、転送バッファーを割り当てるのはミニドライバーの責任です。

lClientAddress

クライアントのアドレス空間内の転送のアドレスを指定します。 ミニドライバーは、この値を変更しないでください。

pIWiaMiniDrvCallBack

データまたは状態コールバック転送に使用される IWiaMiniDrvCallBack インターフェイス を指します。

lImageSize

1 ページ内の非圧縮ビットのサイズをバイト単位で指定します。

lHeaderSize

1 ページ内のイメージ ヘッダー データのサイズをバイト単位で指定します。

lItemSize

ビットとヘッダーのサイズをバイト単位で指定します。 取得前に項目のサイズが不明な場合、この値は 0 にすることができます。

cbWidthInBytes

イメージ行のサイズをバイト単位で指定します。

lPage

マルチページ TIFF イメージをスキャンするときの現在のページのページ番号を指定します。 ページ番号は 0 から始まります。

lCurIfdOffset

マルチページ TIFF イメージの現在のページのイメージ ファイル ディレクトリ (IFD) オフセットを指定します。

lPrevIfdOffset

マルチページ TIFF イメージの前のページのイメージ ファイル ディレクトリ (IFD) オフセットを指定します。

注釈

WIA サービスは、ミニドライバーの IWiaMiniDrv::d rvAcquireItemData メソッドを呼び出す前に、この構造体のほとんどのメンバーを設定します。 ミニドライバーが wiasGetImageInformation を呼び出す場合、その関数は、渡されたMINIDRV_TRANSFER_CONTEXTの残りのメンバーを入力します。

WIA サービスでは現在、TYMED_FILE定数とTYMED_CALLBACK定数のみが使用されているため、 tymed メンバーと bTransferDataCB メンバーは基本的に同じ情報を格納します。 ファイル転送の場合、 bTransferDataCBFALSE に設定されている場合、 tymed は TYMED_FILE または TYMED_MULTIPAGE_FILE に設定されます。 メモリ コールバック転送の場合、 bTransferDataCBTRUE に設定されている場合、 tymed は TYMED_CALLBACK または TYMED_MULTIPAGE_CALLBACK のいずれかに設定されます。

hFile メンバーは、WIA サービスでのみ使用するために予約されています。 ファイル転送にこのメンバーを使用するのではなく、ミニドライバーは代わりにデータをバッファーに書き込み、 wiasWritePageBufToFile を呼び出してファイル転送を完了する必要があります。

ミニドライバーは、次の表に示すメンバーを設定するために、特定の共通またはスキャナー項目のプロパティから値を取得します。

メンバー 設定者
lWidthInPixels WIA_IPA_PIXELS_PER_LINE
lLines WIA_IPA_NUMBER_OF_LINES
lDepth WIA_IPA_DEPTH
lXRes WIA_IPS_XRES
lYRes WIA_IPS_YRES
lCompression WIA_IPA_COMPRESSION
guidFormatID WIA_IPA_FORMAT
Tymed WIA_IPA_TYMED

通常、ミニドライバーは、項目のプロパティの値から直接、前の構造体のメンバーを設定します。 アプリケーションまたはミニドライバーは、以前に項目のプロパティを設定します。 WIA サービスは、プロパティ値を使用してそのサービス コンテキストを入力します。 ドライバーは、クイック リファレンスのために、このコンテキストに格納されている値を使用できます。

WIA サービスは、次の構造体メンバーを設定します。

  • hFile

  • bTransferDataCB

  • bClassDrvAllocBuf

ミニドライバーまたは wiasGetImageInformation サービス ライブラリ関数は、次の構造体メンバーを設定します。

  • lImageSize

  • lHeaderSize

  • lItemSize

  • cbWidthInBytes

この構造体の次のメンバーは、データ転送コールバックで使用されます。 WIA サービスまたはミニドライバーは、これらのメンバーを設定します。 場合によっては、 bClassDrvAllocBuf に格納されている値によって、WIA サービスまたはミニドライバーがメンバーを設定するかどうかが決まります。

メンバー 設定者
cbOffset ミニドライバー
lBufferSize WIA サービスまたはミニドライバー。 bClassDrvAllocBufTRUE の場合、WIA サービスはこのメンバーを設定します。それ以外の場合は、ミニドライバーによって設定されます。
lActiveBuffer WIA サービス。 ミニドライバーは、このメンバーを変更できません。
lNumBuffers WIA サービス。 ミニドライバーは、このメンバーを変更できません。
pBaseBuffer WIA サービスまたはミニドライバー。 bClassDrvAllocBufTRUE の場合、WIA サービスはこのメンバーを設定します。それ以外の場合は、ミニドライバーによって設定されます。
pTransferBuffer WIA サービスまたはミニドライバー。 bClassDrvAllocBufTRUE の場合、WIA サービスはこのメンバーを設定します。それ以外の場合は、ミニドライバーによって設定されます。
lClientAddress WIA サービス。 ミニドライバーは、このメンバーを変更できません。
pIWiaMiniDrvCallBack WIA サービス

要件

要件
Header wiamindr_lh.h (Wiamindr.h を含む)

こちらもご覧ください

IWiaMiniDrv::d rvAcquireItemData

IWiaMiniDrvCallBack::MiniDrvCallback

wiasGetImageInformation

wiasWritePageBufToFile