Share via


estructura de MINIDRV_TRANSFER_CONTEXT (wiamindr_lh.h)

La estructura MINIDRV_TRANSFER_CONTEXT se usa para almacenar la imagen y otra información necesaria para una transferencia de datos de devolución de llamada de memoria o una transferencia de datos de archivo.

Sintaxis

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;

Miembros

lSize

Especifica el tamaño en bytes de esta estructura de MINIDRV_TRANSFER_CONTEXT.

lWidthInPixels

Especifica el ancho en píxeles de la imagen actual. El valor de este miembro se deriva de la WIA_IPA_PIXELS_PER_LINE propiedad de elemento común.

lLines

Especifica el número total de líneas (el número de filas horizontales de píxeles) de la imagen actual. El valor de este miembro se deriva de la WIA_IPA_NUMBER_OF_LINES propiedad de elemento común.

lDepth

Especifica el valor de profundidad de color de la imagen actual en bits por píxel. El valor de este miembro se deriva de la propiedad WIA_IPA_DEPTH elemento común.

lXRes

Especifica la resolución horizontal actual de la imagen en píxeles por pulgada. El valor de este miembro se deriva de la propiedad WIA_IPS_XRES elemento del analizador.

lYRes

Especifica la resolución vertical actual de la imagen en píxeles por pulgada. El valor de este miembro se deriva de la propiedad WIA_IPS_YRES elemento del analizador.

lCompression

Especifica el tipo de compresión utilizada por el dispositivo. El valor de este miembro se deriva de la propiedad WIA_IPA_COMPRESSION elemento común.

guidFormatID

Especifica un GUID que indica el formato de datos del dispositivo. El valor de este miembro se deriva de la propiedad WIA_IPA_FORMAT elemento común.

tymed

Especifica el tipo de transferencia de datos. La transferencia de datos especificada puede ser una transferencia de devolución de llamada de memoria (TYMED_CALLBACK o TYMED_MULTIPAGE_CALLBACK) o transferencia de archivos (TYMED_FILE o TYMED_MULTIPAGE_FILE). El valor de este miembro se deriva de la WIA_IPA_TYMED propiedad de elemento común.

Este miembro transmite información relacionada con eso en el miembro bTransferDataCB . Consulte Comentarios para más información.

hFile

Especifica el identificador del archivo abierto utilizado durante las transferencias de archivos. El minidriver no debe usar este miembro. Consulte Comentarios para más información.

cbOffset

Especifica el desplazamiento actual en bytes de la siguiente ubicación del búfer usada durante esta transferencia.

lBufferSize

Especifica el tamaño total del búfer de transferencia.

lActiveBuffer

Especifica qué búfer se usa para la transferencia actual. El valor de este miembro debe estar en el intervalo de 1 a lNumBuffers.

lNumBuffers

Especifica el número de búferes disponibles para la transferencia de datos. Este valor puede ser actualmente 1 o 2.

pBaseBuffer

Apunta al inicio del búfer de transferencia base.

pTransferBuffer

Apunta al inicio del búfer de transferencia actual. Para una transferencia de devolución de llamada en la que se usa el almacenamiento en búfer doble, este miembro alterna entre los dos búferes, apuntando al principio del primer búfer y, a continuación, al principio del segundo, etc.

bTransferDataCB

Especifica si una transferencia de datos es una transferencia de devolución de llamada de memoria o una transferencia de archivos. Este miembro se establece en TRUE si la transferencia es una transferencia de devolución de llamada de memoria y FALSE si la transferencia es una transferencia de archivos. En el caso de las transferencias de archivos, el servicio WIA suele proporcionar una rutina de devolución de llamada, lo que permite a la aplicación recibir actualizaciones del minidriver sobre el estado de la transferencia de archivos. (El servicio WIA proporciona una rutina de devolución de llamada si la aplicación proporciona su propia rutina de devolución de llamada. Consulte IWiaMiniDrvCallback COM Interface (Interfaz COM de IWiaMiniDrvCallback ) para obtener más información). En el caso de las transferencias de archivos, un minidriver debe comprobar el valor almacenado en el miembro pIWiaMiniDrvCallBack . Si ese miembro es NULL, el servicio WIA no proporciona una rutina de devolución de llamada, por lo que el controlador no debe intentar llamarlo. Para las transferencias de devolución de llamada de memoria, el servicio WIA siempre proporciona una devolución de llamada.

Este miembro transmite información relacionada con eso en el miembro tymed . Consulte Comentarios para más información.

bClassDrvAllocBuf

Especifica si el servicio WIA ha asignado el búfer de transferencia. Este valor es TRUE si el servicio WIA asignó el búfer y FALSE si no. En ese caso, es responsabilidad del minidriver asignar el búfer de transferencia.

lClientAddress

Especifica la dirección, en el espacio de direcciones del cliente, de la transferencia. El minidriver no debe cambiar este valor.

pIWiaMiniDrvCallBack

Apunta a una interfaz IWiaMiniDrvCallBack usada para la transferencia de devolución de llamada de estado o datos.

lImageSize

Especifica el tamaño, en bytes, de bits sin comprimir en una sola página.

lHeaderSize

Especifica el tamaño, en bytes, de los datos de encabezado de imagen en una sola página.

lItemSize

Especifica el tamaño, en bytes, de bits y encabezado. Este valor puede ser cero si se desconoce el tamaño del elemento antes de la adquisición.

cbWidthInBytes

Especifica el tamaño, en bytes, de una línea de imagen.

lPage

Especifica el número de página de la página actual al examinar una imagen TIFF de varias páginas. La numeración de página comienza con cero.

lCurIfdOffset

Especifica el desplazamiento del directorio de archivos de imagen (IFD) en la página actual de una imagen TIFF de varias páginas.

lPrevIfdOffset

Especifica el desplazamiento del directorio de archivos de imagen (IFD) en la página anterior de una imagen TIFF de varias páginas.

Comentarios

El servicio WIA establece la mayoría de los miembros de esta estructura antes de llamar al método IWiaMiniDrv::d rvAcquireItemData del minidriver. Si el minidriver llama a wiasGetImageInformation, esa función rellena los miembros restantes del MINIDRV_TRANSFER_CONTEXT pasado a él.

Dado que el servicio WIA usa actualmente solo las constantes TYMED_FILE y TYMED_CALLBACK, los miembros tymed y bTransferDataCB almacenan esencialmente la misma información. Para las transferencias de archivos, cuando bTransferDataCB se establece en FALSE, tymed se establece en TYMED_FILE o TYMED_MULTIPAGE_FILE. En el caso de las transferencias de devolución de llamada de memoria, cuando bTransferDataCB está establecido en TRUE, se establece en TYMED_CALLBACK o TYMED_MULTIPAGE_CALLBACK.

El miembro hFile está reservado para que lo use únicamente el servicio WIA. En lugar de usar este miembro para las transferencias de archivos, el minidriver debe escribir los datos en un búfer y, a continuación, llamar a wiasWritePageBufToFile para completar la transferencia de archivos.

El minidriver obtiene valores de propiedades de elemento comunes o de escáner específicas para establecer los miembros que se muestran en la tabla siguiente:

Miembro Establecido por
lWidthInPixels WIA_IPA_PIXELS_PER_LINE
lLines WIA_IPA_NUMBER_OF_LINES
lDepth WIA_IPA_DEPTH
lXRes WIA_IPS_XRES
Liras WIA_IPS_YRES
lCompression WIA_IPA_COMPRESSION
guidFormatID WIA_IPA_FORMAT
tymed WIA_IPA_TYMED

Normalmente, el minidriver establece los miembros de estructura anteriores directamente desde los valores de las propiedades del elemento. Una aplicación o el minidriver habrá establecido las propiedades del elemento anteriormente. El servicio WIA rellena su contexto de servicio, utilizando los valores de propiedad. El controlador puede usar los valores almacenados en este contexto para una referencia rápida.

El servicio WIA establece los siguientes miembros de estructura:

  • hFile

  • bTransferDataCB

  • bClassDrvAllocBuf

El minidriver o la función de biblioteca del servicio wiasGetImageInformation establece los siguientes miembros de estructura:

  • lImageSize

  • lHeaderSize

  • lItemSize

  • cbWidthInBytes

Los siguientes miembros de esta estructura se usan en devoluciones de llamada de transferencia de datos. El servicio WIA o el minidriver establece estos miembros. En varios casos, el valor almacenado en bClassDrvAllocBuf determina si el servicio WIA o el minidriver establece el miembro.

Miembro Establecido por
cbOffset Minidriver
lBufferSize Servicio WIA o minidriver. Si bClassDrvAllocBuf es TRUE, el servicio WIA establece este miembro; de lo contrario, el minidriver lo establece.
lActiveBuffer Servicio WIA. El minidriver no debe modificar este miembro.
lNumBuffers Servicio WIA. El minidriver no debe modificar este miembro.
pBaseBuffer Servicio WIA o minidriver. Si bClassDrvAllocBuf es TRUE, el servicio WIA establece este miembro; de lo contrario, el minidriver lo establece.
pTransferBuffer Servicio WIA o minidriver. Si bClassDrvAllocBuf es TRUE, el servicio WIA establece este miembro; de lo contrario, el minidriver lo establece.
lClientAddress Servicio WIA. El minidriver no debe modificar este miembro.
pIWiaMiniDrvCallBack Servicio WIA

Requisitos

Requisito Valor
Header wiamindr_lh.h (incluya Wiamindr.h)

Consulte también

IWiaMiniDrv::d rvAcquireItemData

IWiaMiniDrvCallBack::MiniDrvCallback

wiasGetImageInformation

wiasWritePageBufToFile