共用方式為


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

以像素為單位指定影像目前的水平解析度。 這個成員的值衍生自 WIA_IPS_XRES 掃描器項目屬性。

lYRes

以像素為單位指定影像的目前垂直解析度。 這個成員的值衍生自 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 成員中與該成員相關的資訊。 See Remarks for more information.

hFile

指定檔案傳輸期間所使用開啟檔案的句柄。 迷你驅動程式不應該使用此成員。 See Remarks for more information.

cbOffset

指定此傳輸期間所使用下一個緩衝區位置的目前位移,以位元組為單位。

lBufferSize

指定傳輸緩衝區的總大小。

lActiveBuffer

指定用於目前傳輸的緩衝區。 這個成員的值必須介於1到 lNumBuffers 的範圍內。

lNumBuffers

指定可用於數據傳輸的緩衝區數目。 此值目前可以是 1 或 2。

pBaseBuffer

指向基底傳輸緩衝區的起點。

pTransferBuffer

指向目前傳輸緩衝區的起點。 針對使用雙緩衝的回呼傳輸,這個成員會在兩個緩衝區之間替代,指向第一個緩衝區的開頭,然後指向第二個緩衝區的開頭,依此類推斷。

bTransferDataCB

指定數據傳輸是記憶體回呼傳輸還是檔案傳輸。 如果傳輸是記憶體回呼傳輸,則此成員會設定為 TRUE ;如果傳輸是檔傳輸,則為 FALSE 。 對於檔案傳輸,WIA 服務通常會提供回呼例程,讓應用程式從迷你驅動程式接收有關檔傳輸狀態的更新。 (WIA 服務會在應用程式提供自己的回呼例程時提供回呼例程。如需詳細數據,請參閱 IWiaMiniDrvCallback COM 介面 。) 針對文件傳輸,迷你驅動程式應該檢查 pIWiaMiniDrvCallBack 成員中儲存的值。 如果該成員為 NULL,WIA 服務不會提供回呼例程,因此驅動程式不得嘗試呼叫該成員。 對於記憶體回呼傳輸,WIA 服務一律會提供回呼。

此成員會傳達與 tymed 成員中相關的資訊。 See Remarks for more information.

bClassDrvAllocBuf

指定 WIA 服務是否已配置傳輸緩衝區。 如果 WIA 服務配置了緩衝區,則此值為 TRUE ,如果不是,則為 FALSE 。 在此情況下,迷你驅動程式必須負責配置傳輸緩衝區。

lClientAddress

在用戶端的位址空間中,指定傳輸的位址。 迷你驅動程式不得變更此值。

pIWiaMiniDrvCallBack

指向用於數據或狀態回呼傳輸的 IWiaMiniDrvCallBack 介面

lImageSize

指定單一頁面中未壓縮位的大小,以位元組為單位。

lHeaderSize

指定單一頁面中影像標頭數據的大小,以位元組為單位。

lItemSize

指定位和標頭的大小,以位元組為單位。 如果專案大小在擷取之前未知,這個值可以是零。

cbWidthInBytes

指定圖像線的大小,以位元組為單位。

lPage

指定掃描多頁 TIFF 影像時,目前頁面的頁碼。 頁碼開頭為零。

lCurIfdOffset

指定多頁 TIFF 映射目前頁面中的 IFD) 位移 (影像檔案目錄。

lPrevIfdOffset

指定多頁 TIFF 映射上一頁中 IFD) 位移的映像檔目錄 (。

備註

WIA 服務會先設定此結構的大部分成員,再呼叫 minidriver 的 IWiaMiniDrv::d rvAcquireItemData 方法。 如果 minidriver 呼叫 wiasGetImageInformation,則該函式會填入傳遞給它的其餘MINIDRV_TRANSFER_CONTEXT成員。

因為 WIA 服務目前只會使用TYMED_FILE和TYMED_CALLBACK常數, 所以 tymedbTransferDataCB 成員基本上會儲存相同的資訊。 對於文件傳輸,當 bTransferDataCB 設定為 FALSE 時, tymed 會設定為 TYMED_FILE 或 TYMED_MULTIPAGE_FILE。 針對記憶體回呼傳輸,當 bTransferDataCB 設定為 TRUE 時, tymed 會設定為 TYMED_CALLBACK 或 TYMED_MULTIPAGE_CALLBACK。

hFile 成員會保留供 WIA 服務單獨使用。 迷你驅動程式應該改為將數據寫入緩衝區,然後呼叫 wiasWritePageBufToFile 來完成檔傳輸,而不是使用此成員進行文件傳輸。

minidriver 會從特定通用或掃描器專案屬性取得值,以設定下表所示的成員:

成員 設定者
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

minidriver 或 wiasGetImageInformation 服務連結庫函式會設定下列結構成員:

  • lImageSize

  • lHeaderSize

  • lItemSize

  • cbWidthInBytes

此結構的下列成員用於數據傳輸回呼。 WIA 服務或迷你驅動程式會設定這些成員。 在數種情況下, 儲存在 bClassDrvAllocBuf 中的值會決定 WIA 服務還是迷你驅動程式設定成員。

成員 設定者
cbOffset Minidriver
lBufferSize WIA 服務或迷你驅動程式。 如果 bClassDrvAllocBufTRUE,WIA 服務會設定此成員;否則,迷你驅動程式會加以設定。
lActiveBuffer WIA 服務。 迷你驅動程式不得修改此成員。
lNumBuffers WIA 服務。 迷你驅動程式不得修改此成員。
pBaseBuffer WIA 服務或迷你驅動程式。 如果 bClassDrvAllocBufTRUE,WIA 服務會設定此成員;否則,迷你驅動程式會加以設定。
pTransferBuffer WIA 服務或迷你驅動程式。 如果 bClassDrvAllocBufTRUE,WIA 服務會設定此成員;否則,迷你驅動程式會加以設定。
lClientAddress WIA 服務。 迷你驅動程式不得修改此成員。
pIWiaMiniDrvCallBack WIA 服務

規格需求

需求
標頭 wiamindr_lh.h (包含 Wiamindr.h)

另請參閱

IWiaMiniDrv::d rvAcquireItemData

IWiaMiniDrvCallBack::MiniDrvCallback

wiasGetImageInformation

wiasWritePageBufToFile