Freigeben über


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-

IWiaMiniDrvCallBack::MiniDrvCallback

wiasGetImageInformation

wiasWritePageBufToFile