SPB_TRANSFER_DIRECTION enumeração (spb.h)

A enumeração SPB_TRANSFER_DIRECTION descreve a direção (leitura ou gravação) de uma única transferência em uma sequência de transferência de E/S.

Syntax

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

Constantes

 
SpbTransferDirectionNone
A direção de transferência de dados é indefinida.
SpbTransferDirectionFromDevice
A direção de transferência de dados é do dispositivo para a memória do sistema (leitura do dispositivo).
SpbTransferDirectionToDevice
A direção de transferência de dados é da memória do sistema para o dispositivo (gravação no dispositivo).
SpbTransferDirectionMax
Reservado para uso pelo sistema operacional.

Comentários

Os valores nessa enumeração indicam as direções das transferências individuais em uma sequência de transferência de E/S. O buffer de entrada de uma solicitação de controle de E/S IOCTL_SPB_EXECUTE_SEQUENCE é uma estrutura SPB_TRANSFER_LIST que especifica uma lista de transferências para a sequência. Cada transferência é descrita por uma estrutura de SPB_TRANSFER_LIST_ENTRY que contém os parâmetros de transferência, que incluem a direção de transferência. A direção de transferência é SpbTransferDirectionFromDevice para uma operação de leitura e é SpbTransferDirectionToDevice para uma operação de gravação.

O driver do controlador SPB pode chamar o método SpbRequestGetParameters para recuperar um conjunto de parâmetros específicos do SPB de uma solicitação de E/S. Um desses parâmetros é um valor de enumeração SPB_TRANSFER_DIRECTION que indica a direção de transferência da solicitação de E/S anterior. O driver do controlador SPB pode usar esse valor de direção para determinar se a solicitação atual de leitura ou gravação (IRP_MJ_READ ou IRP_MJ_WRITE) requer uma alteração na direção de transferência no barramento.

Além disso, SpbRequestGetParameters recupera um valor de posição que indica a posição relativa de uma solicitação de leitura ou gravação na lista de transferências para a sequência de várias solicitações. Se uma solicitação de leitura ou uma solicitação de gravação tiver um valor de posição de SpbRequestSequencePositionSingle ou SpbRequestSequencePositionFirst, o valor de direção da transferência anterior será SpbTransferDirectionNone (ou seja, não há nenhuma direção de transferência anterior). Para uma solicitação de leitura ou gravação que tenha um valor de posição de SpbRequestSequencePositionMiddle ou SpbRequestSequencePositionLast, o valor de direção indica se a transferência anterior foi uma leitura ou uma gravação. Para uma solicitação de desbloqueio (IOCTL_SPB_UNLOCK_CONTROLLER), que tem um valor de posição de SpbRequestSequencePositionLast, o valor de direção indica se a última transferência na sequência foi uma leitura ou uma gravação.

Uma solicitação de bloqueio (IOCTL_SPB_LOCK_CONTROLLER) não tem nenhuma direção anterior. Da mesma forma, uma solicitação de controle de E/S passada para a função de retorno de chamada EvtSpbControllerIoOther não tem nenhuma direção anterior. Para qualquer uma dessas solicitações, o valor de direção anterior recuperado por SpbRequestGetParameters é SpbTransferDirectionNone.

Requisitos

   
Cliente mínimo com suporte Com suporte começando com Windows 8.
Cabeçalho spb.h

Confira também