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