Partager via


énumération SPB_TRANSFER_DIRECTION (spb.h)

L’énumération SPB_TRANSFER_DIRECTION décrit la direction (lecture ou écriture) d’un transfert unique dans une séquence de transfert d’E/S .

Syntaxe

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

Constantes

 
SpbTransferDirectionNone
La direction du transfert de données n’est pas définie.
SpbTransferDirectionFromDevice
Le sens du transfert de données est de l’appareil à la mémoire système (lecture à partir de l’appareil).
SpbTransferDirectionToDevice
Le sens du transfert de données est de la mémoire système à l’appareil (écriture sur l’appareil).
SpbTransferDirectionMax
Réservé pour une utilisation par le système d’exploitation.

Remarques

Les valeurs de cette énumération indiquent les directions des transferts individuels dans une séquence de transfert d’E/S. La mémoire tampon d’entrée d’une demande de contrôle d’E/S IOCTL_SPB_EXECUTE_SEQUENCE est une structure SPB_TRANSFER_LIST qui spécifie une liste de transferts pour la séquence. Chaque transfert est décrit par une structure SPB_TRANSFER_LIST_ENTRY qui contient les paramètres de transfert, qui incluent le sens de transfert. Le sens de transfert est SpbTransferDirectionFromDevice pour une opération de lecture et est SpbTransferDirectionToDevice pour une opération d’écriture.

Votre pilote de contrôleur SPB peut appeler la méthode SpbRequestGetParameters pour récupérer un ensemble de paramètres spécifiques à SPB à partir d’une requête d’E/S. L’un de ces paramètres est une valeur d’énumération SPB_TRANSFER_DIRECTION qui indique la direction de transfert de la requête d’E/S précédente. Le pilote du contrôleur SPB peut utiliser cette valeur de direction pour déterminer si la requête de lecture ou d’écriture actuelle (IRP_MJ_READ ou IRP_MJ_WRITE) nécessite un changement de direction de transfert sur le bus.

En outre, SpbRequestGetParameters récupère une valeur de position qui indique la position relative d’une demande de lecture ou d’écriture dans la liste des transferts pour la séquence de plusieurs requêtes. Si une demande de lecture ou une demande d’écriture a une valeur de position de SpbRequestSequencePositionSingle ou SpbRequestSequencePositionFirst, la valeur de direction du transfert précédent est SpbTransferDirectionNone (autrement dit, il n’existe aucune direction de transfert précédente). Pour une demande de lecture ou d’écriture qui a une valeur de position de SpbRequestSequencePositionMiddle ou SpbRequestSequencePositionLast, la valeur de direction indique si le transfert précédent était une lecture ou une écriture. Pour une requête de déverrouillage (IOCTL_SPB_UNLOCK_CONTROLLER), qui a une valeur de position de SpbRequestSequencePositionLast, la valeur de direction indique si le dernier transfert dans la séquence était une lecture ou une écriture.

Une requête de verrou (IOCTL_SPB_LOCK_CONTROLLER) n’a pas de direction précédente. De même, une demande de contrôle d’E/S transmise à la fonction de rappel EvtSpbControllerIoOther n’a pas de direction précédente. Pour l’une de ces requêtes, la valeur de direction précédente récupérée par SpbRequestGetParameters est SpbTransferDirectionNone.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge à partir de Windows 8.
d’en-tête spb.h

Voir aussi