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;
Angehörige
lSize
Gibt die Größe in Byte dieser MINIDRV_TRANSFER_CONTEXT Struktur 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 Gesamtzahl der Zeilen (die Anzahl der horizontalen Zeilen von Pixeln) im aktuellen Bild an. Der Wert dieses Elements wird von der WIA_IPA_NUMBER_OF_LINES allgemeinen Elementeigenschaft 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 Elements 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 Elements wird von der WIA_IPS_YRES Scannerelementeigenschaft abgeleitet.
lCompression
Gibt den Vom Gerät verwendeten Komprimierungstyp an. Der Wert dieses Elements 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 Elements wird von der WIA_IPA_FORMAT allgemeinen Elementeigenschaft 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 Dateiübertragung (TYMED_FILE oder TYMED_MULTIPAGE_FILE) sein. Der Wert dieses Elements wird von der WIA_IPA_TYMED allgemeinen Elementeigenschaft abgeleitet.
Dieses Element vermittelt Informationen dazu im bTransferDataCB Member. Weitere Informationen finden Sie in Anmerkungen.
hFile
Gibt das Handle für die geöffnete Datei an, die bei Dateiübertragungen verwendet wird. Der Minidriver sollte dieses Mitglied nicht verwenden. Weitere Informationen finden Sie in Anmerkungen.
cbOffset
Gibt den aktuellen Offset in Byte 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 Elements muss sich im Bereich von 1 bis lNumBuffersbefinden.
lNumBuffers
Gibt die Anzahl der Puffer an, die für die Datenübertragung verfügbar sind. Dieser Wert kann derzeit 1 oder 2 sein.
pBaseBuffer
Verweist auf den Anfang des Basisübertragungspuffers.
pTransferBuffer
Verweist auf den Anfang des aktuellen Übertragungspuffers. Bei einer Rückrufübertragung, bei der doppelpufferung verwendet wird, wechselt dieses Element zwischen den beiden Puffern, zeigt auf den Anfang des ersten Puffers und dann zum Anfang der zweiten usw.
bTransferDataCB
Gibt an, ob es sich bei einer Datenübertragung um eine Speicherrückrufübertragung oder eine Dateiübertragung handelt. Dieses Element ist auf "TRUE" festgelegt, wenn es sich bei der Übertragung um eine Speicherrückrufübertragung handelt, und FALSE, wenn die Übertragung eine Dateiübertragung ist. Bei Dateiübertragungen stellt der WIA-Dienst in der Regel eine Rückrufroutine bereit, mit der die Anwendung Updates vom Minidriver zum Status der Dateiübertragung empfangen kann. (Der WIA-Dienst stellt eine Rückrufroutine bereit, wenn die Anwendung eine eigene Rückrufroutine bereitstellt. Weitere Informationen finden Sie unter IWiaMiniDrvCallback COM Interface.) Bei Dateiübertragungen sollte ein Minidriver den im pIWiaMiniDrvCallBack Member gespeicherten Wert überprüfen. Wenn dieser Member NULL-ist, stellt der WIA-Dienst keine Rückrufroutine bereit, sodass der Treiber nicht versuchen darf, ihn aufzurufen. Bei Speicherrückrufübertragungen stellt der WIA-Dienst immer einen Rückruf bereit.
Dieses Mitglied vermittelt Informationen dazu im tymed Mitglied. Weitere Informationen finden Sie in Anmerkungen.
bClassDrvAllocBuf
Gibt an, ob der WIA-Dienst den Übertragungspuffer zugewiesen hat. Dieser Wert ist TRUE, wenn der WIA-Dienst den Puffer zugewiesen hat, und wenn nicht, FALSE. In diesem Fall liegt es in der Verantwortung des Minidrivers, den Übertragungspuffer zuzuweisen.
lClientAddress
Gibt die Adresse im Adressraum des Clients der Übertragung an. Der Minidriver darf diesen Wert nicht ändern.
pIWiaMiniDrvCallBack
Verweist auf eine IWiaMiniDrvCallBack Interface für die Daten- oder Statusrückrufübertragung verwendet wird.
lImageSize
Gibt die Größe von nicht komprimierten Bits in Bytes auf einer einzelnen Seite an.
lHeaderSize
Gibt die Größe von Bildkopfdaten in Bytes auf einer einzelnen Seite an.
lItemSize
Gibt die Größe von Bits und Headern in Bytes an. Dieser Wert kann null 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 beim Scannen eines mehrseitigen TIFF-Bilds an. Die Seitennummerierung beginnt mit Null.
lCurIfdOffset
Gibt den Bilddateiverzeichnisversatz (IFD) auf der aktuellen Seite eines mehrseitigen TIFF-Bilds an.
lPrevIfdOffset
Gibt den Bilddateiverzeichnisversatz (IFD) auf der vorherigen Seite eines mehrseitigen TIFF-Bilds an.
Bemerkungen
Der WIA-Dienst legt die meisten Member dieser Struktur fest, bevor er die IWiaMiniDrv::d rvAcquireItemData-Methode des Minidrivers aufruft. Wenn der Minidriver wiasGetImageInformationaufruft, füllt diese Funktion die verbleibenden Elemente der MINIDRV_TRANSFER_CONTEXT an sie übergeben.
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- für Dateiübertragungen auf FALSE-festgelegt ist, wird tymed entweder auf TYMED_FILE oder TYMED_MULTIPAGE_FILE festgelegt. Wenn bTransferDataCB- für Speicherrückrufübertragungen auf TRUEfestgelegt ist, wird tymed- entweder auf TYMED_CALLBACK oder TYMED_MULTIPAGE_CALLBACK festgelegt.
Das hFile Mitglied ist ausschließlich für die Verwendung durch den WIA-Dienst reserviert. Anstatt dieses Members 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 oder Scannerelementeigenschaften ab, um die in der folgenden Tabelle gezeigten Elemente festzulegen:
Mitglied | Festlegen nach |
---|---|
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 |
WIA_IPA_TYMED |
In der Regel legt der Minidriver die vorherigen Strukturelemente direkt aus den Werten der Elementeigenschaften fest. Eine Anwendung oder ein Minidriver hat die Elementeigenschaften zuvor festgelegt. Der WIA-Dienst füllt seinen Dienstkontext mit den Eigenschaftswerten aus. Der Treiber kann die in diesem Kontext gespeicherten Werte für kurzübersichten verwenden.
Der WIA-Dienst legt die folgenden Strukturmber fest:
hFile-
bTransferDataCB-
bClassDrvAllocBuf
Entweder der Minidriver oder die wiasGetImageInformation Dienstbibliotheksfunktion legt die folgenden Strukturmmber fest:
lImageSize-
lHeaderSize-
lItemSize-
cbWidthInBytes
Die folgenden Elemente dieser Struktur werden in Rückrufen für die Datenübertragung 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 nach |
---|---|
cbOffset- | Minidriver |
lBufferSize- | WIA-Dienst oder Minidriver. Wenn bClassDrvAllocBufTRUEist, legt der WIA-Dienst diesen Member fest; andernfalls legt der Minidriver ihn fest. |
lActiveBuffer- | WIA-Dienst. Der Minidriver darf dieses Mitglied nicht ändern. |
lNumBuffers | WIA-Dienst. Der Minidriver darf dieses Mitglied nicht ändern. |
pBaseBuffer- | WIA-Dienst oder Minidriver. Wenn bClassDrvAllocBufTRUEist, legt der WIA-Dienst diesen Member fest; andernfalls legt der Minidriver ihn fest. |
pTransferBuffer- | WIA-Dienst oder Minidriver. Wenn bClassDrvAllocBufTRUEist, legt der WIA-Dienst diesen Member fest; andernfalls legt der Minidriver ihn fest. |
lClientAddress- | WIA-Dienst. Der Minidriver darf dieses Mitglied nicht ändern. |
pIWiaMiniDrvCallBack | WIA-Dienst |
Anforderungen
Anforderung | Wert |
---|---|
Header- | wiamindr_lh.h (include Wiamindr.h) |
Siehe auch
IWiaMiniDrv::d rvAcquireItemData-