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

IWiaMiniDrvCallBack::MiniDrvCallback

wiasGetImageInformation

wiasWritePageBufToFile