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 |