struktur MINIDRV_TRANSFER_CONTEXT (wiamindr_lh.h)

Struktur MINIDRV_TRANSFER_CONTEXT digunakan untuk menyimpan gambar dan informasi lain yang diperlukan untuk transfer data panggilan balik memori atau transfer data file.

Sintaks

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;

Anggota

lSize

Menentukan ukuran dalam byte dari struktur MINIDRV_TRANSFER_CONTEXT ini.

lWidthInPixels

Menentukan lebar dalam piksel gambar saat ini. Nilai anggota ini berasal dari properti item umum WIA_IPA_PIXELS_PER_LINE .

lLines

Menentukan jumlah total baris (jumlah baris horizontal piksel) dalam gambar saat ini. Nilai anggota ini berasal dari properti item umum WIA_IPA_NUMBER_OF_LINES .

lDepth

Menentukan nilai kedalaman warna gambar saat ini dalam bit per piksel. Nilai anggota ini berasal dari properti item umum WIA_IPA_DEPTH .

lXRes

Menentukan resolusi horizontal gambar saat ini dalam piksel per inci. Nilai anggota ini berasal dari properti item pemindai WIA_IPS_XRES .

lYRes

Menentukan resolusi vertikal gambar saat ini dalam piksel per inci. Nilai anggota ini berasal dari properti item pemindai WIA_IPS_YRES .

lCompression

Menentukan jenis pemadatan yang digunakan oleh perangkat. Nilai anggota ini berasal dari properti item umum WIA_IPA_COMPRESSION .

guidFormatID

Menentukan GUID yang menunjukkan format data untuk perangkat. Nilai anggota ini berasal dari properti item umum WIA_IPA_FORMAT .

tymed

Menentukan jenis transfer data. Transfer data yang ditentukan dapat berupa transfer panggilan balik memori (TYMED_CALLBACK atau TYMED_MULTIPAGE_CALLBACK) atau transfer file (TYMED_FILE atau TYMED_MULTIPAGE_FILE). Nilai anggota ini berasal dari properti item umum WIA_IPA_TYMED .

Anggota ini menyampaikan informasi terkait hal tersebut di anggota bTransferDataCB . Lihat Keterangan untuk informasi selengkapnya.

hFile

Menentukan handel ke file terbuka yang digunakan selama transfer file. Minidriver tidak boleh menggunakan anggota ini. Lihat Keterangan untuk informasi selengkapnya.

cbOffset

Menentukan offset saat ini dalam byte dari lokasi buffer berikutnya yang digunakan selama transfer ini.

lBufferSize

Menentukan ukuran total buffer transfer.

lActiveBuffer

Menentukan buffer mana yang digunakan untuk transfer saat ini. Nilai anggota ini harus dalam rentang 1 hingga lNumBuffers.

lNumBuffers

Menentukan jumlah buffer yang tersedia untuk transfer data. Nilai ini saat ini dapat berupa 1 atau 2.

pBaseBuffer

Menunjuk ke awal buffer transfer dasar.

pTransferBuffer

Menunjuk ke awal buffer transfer saat ini. Untuk transfer panggilan balik di mana buffering ganda digunakan, anggota ini bergantian antara dua buffer, menunjuk ke awal buffer pertama, dan kemudian ke awal yang kedua, dan sebagainya.

bTransferDataCB

Menentukan apakah transfer data adalah transfer panggilan balik memori atau transfer file. Anggota ini diatur ke TRUE jika transfer adalah transfer panggilan balik memori, dan FALSE jika transfer adalah transfer file. Untuk transfer file, layanan WIA biasanya menyediakan rutinitas panggilan balik, yang memungkinkan aplikasi menerima pembaruan dari minidriver tentang status transfer file. (Layanan WIA menyediakan rutinitas panggilan balik jika aplikasi menyediakan rutinitas panggilan baliknya sendiri. Lihat Antarmuka COM IWiaMiniDrvCallback untuk detailnya.) Untuk transfer file, minidriver harus memeriksa nilai yang disimpan di anggota pIWiaMiniDrvCallBack . Jika anggota tersebut ADALAH NULL, layanan WIA tidak menyediakan rutinitas panggilan balik, sehingga driver tidak boleh mencoba memanggilnya. Untuk transfer panggilan balik memori, layanan WIA selalu menyediakan panggilan balik.

Anggota ini menyampaikan informasi terkait hal tersebut di anggota tymed . Lihat Keterangan untuk informasi selengkapnya.

bClassDrvAllocBuf

Menentukan apakah layanan WIA telah mengalokasikan buffer transfer. Nilai ini TRUE jika layanan WIA mengalokasikan buffer, dan FALSE jika tidak. Dalam hal ini, adalah tanggung jawab minidriver untuk mengalokasikan buffer transfer.

lClientAddress

Menentukan alamat, di ruang alamat klien, transfer. Minidriver tidak boleh mengubah nilai ini.

pIWiaMiniDrvCallBack

Menunjuk ke Antarmuka IWiaMiniDrvCallBack yang digunakan untuk transfer panggilan balik data atau status.

lImageSize

Menentukan ukuran, dalam byte, bit yang tidak dikompresi dalam satu halaman.

lHeaderSize

Menentukan ukuran, dalam byte, data header gambar dalam satu halaman.

lItemSize

Menentukan ukuran, dalam byte, bit dan header. Nilai ini bisa nol jika ukuran item tidak diketahui sebelum akuisisi.

cbWidthInBytes

Menentukan ukuran, dalam byte, dari baris gambar.

lPage

Menentukan nomor halaman halaman saat ini saat memindai gambar TIFF kali. Penomoran halaman dimulai dengan nol.

lCurIfdOffset

Menentukan offset direktori file gambar (IFD) di halaman saat ini dari gambar TIFF multipage.

lPrevIfdOffset

Menentukan offset direktori file gambar (IFD) di halaman sebelumnya dari gambar TIFF multipage.

Keterangan

Layanan WIA menetapkan sebagian besar anggota struktur ini sebelum memanggil metode IWiaMiniDrv::d rvAcquireItemData minidriver. Jika minidriver memanggil wiasGetImageInformation, maka fungsi tersebut mengisi anggota MINIDRV_TRANSFER_CONTEXT yang tersisa yang diteruskan ke dalamnya.

Karena layanan WIA saat ini hanya menggunakan konstanta TYMED_FILE dan TYMED_CALLBACK, anggota tymed dan bTransferDataCB pada dasarnya menyimpan informasi yang sama. Untuk transfer file, ketika bTransferDataCB diatur ke FALSE, tymed diatur ke TYMED_FILE atau TYMED_MULTIPAGE_FILE. Untuk transfer panggilan balik memori, ketika bTransferDataCB diatur ke TRUE, tymed diatur ke TYMED_CALLBACK atau TYMED_MULTIPAGE_CALLBACK.

Anggota hFile dicadangkan untuk digunakan hanya oleh layanan WIA. Daripada menggunakan anggota ini untuk transfer file, minidriver harus menulis data ke buffer, dan kemudian memanggil wiasWritePageBufToFile untuk menyelesaikan transfer file.

Minidriver mendapatkan nilai dari properti item umum atau pemindai tertentu untuk mengatur anggota yang diperlihatkan dalam tabel berikut ini:

Anggota Diatur oleh
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

Biasanya, minidriver mengatur anggota struktur sebelumnya langsung dari nilai properti item. Aplikasi atau minidriver akan mengatur properti item sebelumnya. Layanan WIA mengisi konteks layanannya, menggunakan nilai properti . Driver dapat menggunakan nilai yang disimpan dalam konteks ini untuk referensi cepat.

Layanan WIA menetapkan anggota struktur berikut:

  • hFile

  • bTransferDataCB

  • bClassDrvAllocBuf

Baik fungsi pustaka layanan minidriver atau wiasGetImageInformation mengatur anggota struktur berikut:

  • lImageSize

  • lHeaderSize

  • lItemSize

  • cbWidthInBytes

Anggota berikut dari struktur ini digunakan dalam panggilan balik transfer data. Layanan WIA atau minidriver mengatur anggota ini. Dalam beberapa kasus, nilai yang disimpan di bClassDrvAllocBuf menentukan apakah layanan WIA atau minidriver menetapkan anggota.

Anggota Diatur oleh
cbOffset Minidriver
lBufferSize Layanan WIA atau minidriver. Jika bClassDrvAllocBufTRUE, layanan WIA menetapkan anggota ini; jika tidak, minidriver mengaturnya.
lActiveBuffer Layanan WIA. Minidriver tidak boleh mengubah anggota ini.
lNumBuffers Layanan WIA. Minidriver tidak boleh mengubah anggota ini.
pBaseBuffer Layanan WIA atau minidriver. Jika bClassDrvAllocBufTRUE, layanan WIA menetapkan anggota ini; jika tidak, minidriver mengaturnya.
pTransferBuffer Layanan WIA atau minidriver. Jika bClassDrvAllocBufTRUE, layanan WIA menetapkan anggota ini; jika tidak, minidriver mengaturnya.
lClientAddress Layanan WIA. Minidriver tidak boleh mengubah anggota ini.
pIWiaMiniDrvCallBack Layanan WIA

Persyaratan

Persyaratan Nilai
Header wiamindr_lh.h (termasuk Wiamindr.h)

Lihat juga

IWiaMiniDrv::d rvAcquireItemData

IWiaMiniDrvCallBack::MiniDrvCallback

wiasGetImageInformation

wiasWritePageBufToFile