MINIDRV_TRANSFER_CONTEXT-Struktur (wiamindr_lh.h)
Die MINIDRV_TRANSFER_CONTEXT-Struktur wird verwendet, um Bild- und andere Informationen zu speichern, die für eine Speicherrückrufdatenübertragung oder eine Dateidatenübertragung erforderlich sind.
Syntax
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;
Member
lSize
Gibt die Größe dieser MINIDRV_TRANSFER_CONTEXT-Struktur in Bytes an.
lWidthInPixels
Gibt die Breite des aktuellen Bilds in Pixel an. Der Wert dieses Elements wird von der WIA_IPA_PIXELS_PER_LINE allgemeinen Elementeigenschaft abgeleitet.
lLines
Gibt die Gesamtanzahl von Zeilen (die Anzahl der horizontalen Zeilen von Pixeln) im aktuellen Bild an. Der Wert dieses Elements wird von der WIA_IPA_NUMBER_OF_LINES common item-Eigenschaft abgeleitet.
lDepth
Gibt den Farbtiefewert des aktuellen Bilds in Bits pro Pixel an. Der Wert dieses Elements wird von der WIA_IPA_DEPTH allgemeinen Elementeigenschaft abgeleitet.
lXRes
Gibt die aktuelle horizontale Auflösung des Bilds in Pixel pro Zoll an. Der Wert dieses Members wird von der WIA_IPS_XRES Scannerelementeigenschaft abgeleitet.
lYRes
Gibt die aktuelle vertikale Auflösung des Bilds in Pixel pro Zoll an. Der Wert dieses Members wird von der Eigenschaft WIA_IPS_YRES Scannerelements abgeleitet.
lCompression
Gibt den Vom Gerät verwendeten Komprimierungstyp an. Der Wert dieses Members wird von der WIA_IPA_COMPRESSION allgemeinen Elementeigenschaft abgeleitet.
guidFormatID
Gibt eine GUID an, die das Datenformat für das Gerät angibt. Der Wert dieses Members wird von der WIA_IPA_FORMAT common item-Eigenschaft abgeleitet.
tymed
Gibt den Typ der Datenübertragung an. Die angegebene Datenübertragung kann entweder eine Speicherrückrufübertragung (TYMED_CALLBACK oder TYMED_MULTIPAGE_CALLBACK) oder eine Dateiübertragung (TYMED_FILE oder TYMED_MULTIPAGE_FILE) sein. Der Wert dieses Members wird von der WIA_IPA_TYMED common item-Eigenschaft abgeleitet.
Dieses Element übermittelt Informationen zu diesem Element im bTransferDataCB-Member . Weitere Informationen finden Sie unter Hinweise .
hFile
Gibt das Handle für die geöffnete Datei an, die bei Dateiübertragungen verwendet wird. Der Minidriver sollte diesen Member nicht verwenden. Weitere Informationen finden Sie unter Hinweise .
cbOffset
Gibt den aktuellen Offset in Bytes des nächsten Pufferspeicherorts an, der während dieser Übertragung verwendet wird.
lBufferSize
Gibt die Gesamtgröße des Übertragungspuffers an.
lActiveBuffer
Gibt an, welcher Puffer für die aktuelle Übertragung verwendet wird. Der Wert dieses Members muss im Bereich von 1 bis lNumBuffers liegen.
lNumBuffers
Gibt die Anzahl der für die Datenübertragung verfügbaren Puffer an. Dieser Wert kann derzeit entweder 1 oder 2 sein.
pBaseBuffer
Zeigt auf den Anfang des Basisübertragungspuffers.
pTransferBuffer
Zeigt auf den Anfang des aktuellen Übertragungspuffers. Bei einer Rückrufübertragung, bei der doppelter Puffer verwendet wird, wechselt dieser Member zwischen den beiden Puffern, wobei auf den Anfang des ersten Puffers und dann auf den Anfang des zweiten Puffers verweist usw.
bTransferDataCB
Gibt an, ob eine Datenübertragung eine Speicherrückrufübertragung oder eine Dateiübertragung ist. Dieser Member ist auf TRUE festgelegt, wenn es sich bei der Übertragung um eine Speicherrückrufübertragung handelt, und auf FALSE , wenn es sich bei der Übertragung um eine Dateiübertragung handelt. Für Dateiübertragungen bietet der WIA-Dienst in der Regel eine Rückrufroutine, die es der Anwendung ermöglicht, Updates vom Minidriver zum status der Dateiübertragung zu empfangen. (Der WIA-Dienst bietet eine Rückrufroutine, wenn die Anwendung eine eigene Rückrufroutine bereitstellt. Weitere Informationen finden Sie unter IWiaMiniDrvCallback COM-Schnittstelle .) Bei Dateiübertragungen sollte ein Minidriver den wert überprüfen, der im pIWiaMiniDrvCallBack-Element gespeichert ist. Wenn dieser Member NULL ist, stellt der WIA-Dienst keine Rückrufroutine bereit, sodass der Treiber nicht versuchen darf, ihn aufzurufen. Für Speicherrückrufübertragungen stellt der WIA-Dienst immer einen Rückruf bereit.
Dieses Element übermittelt Informationen zu diesem Element im tymed-Element . Weitere Informationen finden Sie unter Hinweise .
bClassDrvAllocBuf
Gibt an, ob der WIA-Dienst den Übertragungspuffer zugewiesen hat. Dieser Wert ist TRUE , wenn der WIA-Dienst den Puffer zugewiesen hat, und FALSE , falls nicht. In diesem Fall liegt es in der Verantwortung des Minitreibers, den Übertragungspuffer zuzuweisen.
lClientAddress
Gibt die Adresse der Übertragung im Adressraum des Clients an. Der Minidriver darf diesen Wert nicht ändern.
pIWiaMiniDrvCallBack
Verweist auf eine IWiaMiniDrvCallBack-Schnittstelle, die für daten- oder status Rückrufübertragung verwendet wird.
lImageSize
Gibt die Größe von nicht komprimierten Bits auf einer einzelnen Seite in Bytes an.
lHeaderSize
Gibt die Größe von Bildheaderdaten auf einer einzelnen Seite in Bytes an.
lItemSize
Gibt die Größe von Bits und Headern in Bytes an. Dieser Wert kann 0 sein, wenn die Elementgröße vor dem Erwerb unbekannt ist.
cbWidthInBytes
Gibt die Größe einer Bildzeile in Bytes an.
lPage
Gibt die Seitenzahl der aktuellen Seite an, wenn ein mehrseitiges TIFF-Bild überprüft wird. Die Seitennummerierung beginnt mit 0.
lCurIfdOffset
Gibt den IFD-Offset (Image File Directory) auf der aktuellen Seite eines mehrseitigen TIFF-Images an.
lPrevIfdOffset
Gibt den IfD-Offset (Image File Directory) auf der vorherigen Seite eines mehrseitigen TIFF-Images an.
Hinweise
Der WIA-Dienst legt die meisten Member dieser Struktur fest, bevor er die IWiaMiniDrv::d rvAcquireItemData-Methode des Minidrivers aufruft. Wenn der Minidriver wiasGetImageInformation aufruft, füllt diese Funktion die restlichen Member der MINIDRV_TRANSFER_CONTEXT an sie übergeben werden aus.
Da der WIA-Dienst derzeit nur die TYMED_FILE und TYMED_CALLBACK Konstanten verwendet, speichern die Tymed - und bTransferDataCB-Member im Wesentlichen dieselben Informationen. Wenn bTransferDataCB bei Dateiübertragungen auf FALSE festgelegt ist, wird tymed entweder auf TYMED_FILE oder TYMED_MULTIPAGE_FILE festgelegt. Wenn bTransferDataCB bei Speicherrückrufübertragungen auf TRUE festgelegt ist, wird tymed entweder auf TYMED_CALLBACK oder TYMED_MULTIPAGE_CALLBACK festgelegt.
Das hFile-Element ist ausschließlich für die Verwendung durch den WIA-Dienst reserviert. Anstatt diesen Member für Dateiübertragungen zu verwenden, sollte der Minidriver stattdessen die Daten in einen Puffer schreiben und dann wiasWritePageBufToFile aufrufen, um die Dateiübertragung abzuschließen.
Der Minidriver ruft Werte aus bestimmten allgemeinen Eigenschaften oder Scannerelementeigenschaften ab, um die in der folgenden Tabelle dargestellten Elemente festzulegen:
Mitglied | Festlegen durch |
---|---|
lWidthInPixels | WIA_IPA_PIXELS_PER_LINE |
lLines | WIA_IPA_NUMBER_OF_LINES |
lDepth | WIA_IPA_DEPTH |
lXRes | WIA_IPS_XRES |
lYRes | WIA_IPS_YRES |
lKompression | WIA_IPA_COMPRESSION |
guidFormatID | WIA_IPA_FORMAT |
Tymed | WIA_IPA_TYMED |
In der Regel legt der Minidriver die vorherigen Strukturelemente direkt aus den Werten der Elementeigenschaften fest. Eine Anwendung oder der Minidriver hat die Elementeigenschaften zuvor festgelegt. Der WIA-Dienst füllt seinen Dienstkontext unter Verwendung der Eigenschaftswerte aus. Der Treiber kann die in diesem Kontext gespeicherten Werte als Kurzübersicht verwenden.
Der WIA-Dienst legt die folgenden Strukturmber fest:
hFile
bTransferDataCB
bClassDrvAllocBuf
Entweder der minidriver oder die wiasGetImageInformation-Dienstbibliotheksfunktion legt die folgenden Strukturmber fest:
lImageSize
lHeaderSize
lItemSize
cbWidthInBytes
Die folgenden Elemente dieser Struktur werden in Datenübertragungsrückrufen verwendet. Der WIA-Dienst oder der Minidriver legt diese Member fest. In mehreren Fällen bestimmt der in bClassDrvAllocBuf gespeicherte Wert, ob der WIA-Dienst oder der Minidriver das Element festlegt.
Mitglied | Festlegen durch |
---|---|
cbOffset | Minidriver |
lBufferSize | WIA-Dienst oder Minidriver. Wenn bClassDrvAllocBuftrue ist, legt der WIA-Dienst diesen Member fest. andernfalls legt der Minidriver es fest. |
lActiveBuffer | WIA-Dienst. Dieser Member darf vom Minidriver nicht geändert werden. |
lNumBuffers | WIA-Dienst. Dieser Member darf vom Minidriver nicht geändert werden. |
pBaseBuffer | WIA-Dienst oder Minidriver. Wenn bClassDrvAllocBuftrue ist, legt der WIA-Dienst diesen Member fest. andernfalls legt der Minidriver es fest. |
pTransferBuffer | WIA-Dienst oder Minidriver. Wenn bClassDrvAllocBuftrue ist, legt der WIA-Dienst diesen Member fest. andernfalls legt der Minidriver es fest. |
lClientAddress | WIA-Dienst. Dieser Member darf vom Minidriver nicht geändert werden. |
pIWiaMiniDrvCallBack | WIA-Dienst |
Anforderungen
Anforderung | Wert |
---|---|
Header | wiamindr_lh.h (einschließlich Wiamindr.h) |
Weitere Informationen
IWiaMiniDrv::d rvAcquireItemData