enumeración SPB_TRANSFER_DIRECTION (spb.h)

La enumeración SPB_TRANSFER_DIRECTION describe la dirección (lectura o escritura) de una única transferencia en una secuencia de transferencia de E/S.

Syntax

typedef enum SPB_TRANSFER_DIRECTION {
  SpbTransferDirectionNone,
  SpbTransferDirectionFromDevice,
  SpbTransferDirectionToDevice,
  SpbTransferDirectionMax
}  *PSPB_TRANSFER_DIRECTION;

Constantes

 
SpbTransferDirectionNone
La dirección de transferencia de datos no está definida.
SpbTransferDirectionFromDevice
La dirección de transferencia de datos es desde el dispositivo a la memoria del sistema (leído desde el dispositivo).
SpbTransferDirectionToDevice
La dirección de transferencia de datos es de la memoria del sistema al dispositivo (escribir en el dispositivo).
SpbTransferDirectionMax
Reservado para su uso por el sistema operativo.

Comentarios

Los valores de esta enumeración indican las direcciones de las transferencias individuales en una secuencia de transferencia de E/S. El búfer de entrada de una solicitud de control de E/S de IOCTL_SPB_EXECUTE_SEQUENCE es una estructura de SPB_TRANSFER_LIST que especifica una lista de transferencias para la secuencia. Cada transferencia se describe mediante una estructura de SPB_TRANSFER_LIST_ENTRY que contiene los parámetros de transferencia, que incluyen la dirección de transferencia. La dirección de transferencia es SpbTransferDirectionFromDevice para una operación de lectura y es SpbTransferDirectionToDevice para una operación de escritura.

El controlador del controlador SPB puede llamar al método SpbRequestGetParameters para recuperar un conjunto de parámetros específicos de SPB de una solicitud de E/S. Uno de estos parámetros es un valor de enumeración SPB_TRANSFER_DIRECTION que indica la dirección de transferencia de la solicitud de E/S anterior. El controlador del controlador SPB puede usar este valor de dirección para determinar si la solicitud actual de lectura o escritura (IRP_MJ_READ o IRP_MJ_WRITE) requiere un cambio en la dirección de transferencia en el bus.

Además, SpbRequestGetParameters recupera un valor de posición que indica la posición relativa de una solicitud de lectura o escritura en la lista de transferencias para la secuencia de varias solicitudes. Si una solicitud de lectura o una solicitud de escritura tiene un valor de posición de SpbRequestSequencePositionSingle o SpbRequestSequencePositionFirst, el valor de dirección de la transferencia anterior es SpbTransferDirectionNone (es decir, no hay ninguna dirección de transferencia anterior). Para una solicitud de lectura o escritura que tenga un valor de posición de SpbRequestSequencePositionMiddle o SpbRequestSequencePositionLast, el valor de dirección indica si la transferencia anterior era de lectura o escritura. Para una solicitud de desbloqueo (IOCTL_SPB_UNLOCK_CONTROLLER), que tiene un valor de posición de SpbRequestSequencePositionLast, el valor de dirección indica si la última transferencia de la secuencia era de lectura o escritura.

Una solicitud de bloqueo (IOCTL_SPB_LOCK_CONTROLLER) no tiene ninguna dirección anterior. Del mismo modo, una solicitud de control de E/S que se pasa a la función de devolución de llamada EvtSpbControllerIoOther no tiene ninguna dirección anterior. Para cualquiera de estas solicitudes, el valor de dirección anterior recuperado por SpbRequestGetParameters es SpbTransferDirectionNone.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite a partir de Windows 8.
Encabezado spb.h

Consulte también