Partager via


structure SCSI_PASS_THROUGH_DIRECT_EX (ntdddscsi.h)

La structure SCSI_PASS_THROUGH_DIRECT_EX est utilisée conjointement avec une demande de IOCTL_SCSI_PASS_THROUGH_DIRECT_EX pour indiquer au pilote de port d’envoyer une commande SCSI incorporée à l’appareil cible. SCSI_PASS_THROUGH_DIRECT_EX peut contenir des transferts de données bidirectionnels et un bloc de données de commande de longueur variable.   

Note

Le pilote de port SCSI et les modèles de pilotes miniport SCSI peuvent être modifiés ou indisponibles à l’avenir. Au lieu de cela, nous vous recommandons d’utiliser le du pilote Storport et modèles de pilotes Storport miniport.

Syntaxe

typedef struct _SCSI_PASS_THROUGH_DIRECT_EX {
  ULONG Version;
  ULONG Length;
  ULONG CdbLength;
  ULONG StorAddressLength;
  UCHAR ScsiStatus;
  UCHAR SenseInfoLength;
  UCHAR DataDirection;
  UCHAR Reserved;
  ULONG TimeOutValue;
  ULONG StorAddressOffset;
  ULONG SenseInfoOffset;
  ULONG DataOutTransferLength;
  ULONG DataInTransferLength;
  VOID  *DataOutBuffer;
  VOID  *DataInBuffer;
  UCHAR Cdb[ANYSIZE_ARRAY];
} SCSI_PASS_THROUGH_DIRECT_EX, *PSCSI_PASS_THROUGH_DIRECT_EX;

Membres

Version

Version de cette structure. Défini sur 0.

Length

Taille de cette structure. Défini sur taille de(SCSI_PASS_THROUGH_DIRECT_EX).

CdbLength

Indique la taille en octets du bloc de descripteur de commande SCSI dans Cdb .

StorAddressLength

Longueur de la structure d’adresse de l’appareil de stockage au décalage de StorAddressOffset après cette structure. Cette valeur est définie sur taille de(STOR_ADDR_BTL8).

ScsiStatus

Signale l’état SCSI retourné par l’adaptateur HBA ou l’appareil cible.

SenseInfoLength

Indique la taille en octets de la mémoire tampon de sens de la requête. Ce membre est facultatif et peut être défini sur 0.

DataDirection

Ce champ doit avoir l’une des valeurs suivantes :

Type de transfert de données Signification
SCSI_IOCTL_DATA_IN Lit les données de l’appareil.
SCSI_IOCTL_DATA_OUT Écrivez des données sur l’appareil.
SCSI_IOCTL_DATA_UNSPECIFIED Aucune donnée n’est transférée.
SCSI_IOCTL_DATA_BIDIRECTIONAL Les données sont valides pour l’entrée et la sortie.

Reserved

Réservé. Défini sur 0.

TimeOutValue

Indique l’intervalle en secondes que la requête peut exécuter avant que le pilote de port considère qu’il a expiré.

StorAddressOffset

Emplacement de la structure d’adresses STOR_ADDR_BTL8 de l’appareil cible, en octets, à partir du début de cette structure.

SenseInfoOffset

Décalage entre le début de cette structure et la mémoire tampon de sens de la requête. Défini sur 0 si aucune mémoire tampon de sens de requête n’est présente.

DataOutTransferLength

Indique la taille en octets de la mémoire tampon de données de sortie. De nombreux appareils transfèrent des blocs de données de longueur prédéfinie. La valeur de DataOutTransferLength doit être un multiple intégral de cette longueur minimale prédéfinie spécifiée par l’appareil. Si une sous-exécution se produit, le pilote miniport doit mettre à jour ce membre avec le nombre d’octets réellement transférés. Si aucune mémoire tampon de données de sortie n’est présente, ce membre a la valeur 0.

DataInTransferLength

Indique la taille en octets de la mémoire tampon de données d’entrée. De nombreux appareils transfèrent des blocs de données de longueur prédéfinie. La valeur de DataInTransferLength doit être un multiple intégral de cette longueur minimale prédéfinie spécifiée par l’appareil. Si une sous-exécution se produit, le pilote miniport doit mettre à jour ce membre avec le nombre d’octets réellement transférés. Si aucune mémoire tampon de données d’entrée n’est présente, ce membre a la valeur 0.

DataOutBuffer

Pointeur vers une mémoire tampon de données de sortie.

DataInBuffer

Pointeur vers une mémoire tampon de données d’entrée.

Cdb[ANYSIZE_ARRAY]

Spécifie le bloc de descripteur de commande SCSI à envoyer à l’appareil cible.

Remarques

La structure SCSI_PASS_THROUGH_DIRECT_EX est utilisée avec IOCTL_SCSI_PASS_THROUGH_DIRECT_EX. Avec cette requête, le système verrouille la mémoire tampon en mémoire utilisateur et l’appareil accède directement à cette mémoire. Pour obtenir un équivalent à deux mémoires tampons de cette demande de contrôle d’appareil, consultez IOCTL_SCSI_PASS_THROUGH_EX et SCSI_PASS_THROUGH_EX.

Note

Les pilotes s’exécutant sur une version 64 bits de Windows doivent utiliser la structure SCSI_PASS_THROUGH_DIRECT32_EX comme type de données de requête lors de la gestion d’une requête IOCTL_SCSI_PASS_THROUGH_DIRECT_EX à partir d’un processus 32 bits.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 8.
d’en-tête ntddscsi.h (include Ntddscsi.h)

Voir aussi

IOCTL_SCSI_PASS_THROUGH_DIRECT_EX

IOCTL_SCSI_PASS_THROUGH_DIRECT_EX

SCSI_PASS_THROUGH_DIRECT

STOR_ADDR_BTL8