Fonction ScsiPortIoMapTransfer (srb.h)
La routine ScsiPortIoMapTransfer configure le contrôleur DMA système pour un pilote miniport afin de transférer des données via un HBA subordonné.
Syntaxe
SCSIPORT_API VOID ScsiPortIoMapTransfer(
[in] PVOID HwDeviceExtension,
[in] PSCSI_REQUEST_BLOCK Srb,
[in] PVOID LogicalAddress,
[in] ULONG Length
);
Paramètres
[in] HwDeviceExtension
Pointeur vers l’extension de périphérique matériel. Il s’agit d’une zone de stockage par HBA que le pilote de port alloue et initialise pour le compte du pilote miniport. Les pilotes Miniport stockent généralement des informations spécifiques à HBA dans cette extension, telles que l’état de l’adaptateur HBA et les plages d’accès mappées du HBA. Cette zone est disponible pour le pilote miniport dans le membre DeviceExtension-HwDeviceExtension> de l’objet d’appareil du HBA immédiatement après que le pilote miniport a appelé ScsiPortInitialize. Le pilote de port libère cette mémoire lorsqu’il supprime l’appareil.
[in] Srb
Pointeur vers le bloc de requête SCSI pour le transfert DMA.
[in] LogicalAddress
Spécifie l’adresse de départ de l’opération de transfert. Cette valeur peut être l’adresse de base d’une mémoire tampon dans laquelle ou à partir de laquelle les données doivent être transférées. Cette valeur peut être un décalage dans une telle mémoire tampon.
[in] Length
Spécifie le nombre d’octets à transférer.
Valeur de retour
None
Remarques
Seuls les pilotes miniport des HBA qui utilisent un contrôleur DMA système (DMA subordonné) appellent ScsiPortIoMapTransfer. Cette routine doit être appelée avant qu’un pilote de miniport de ce type configure son HBA pour transférer des données. La plage spécifiée par LogicalAddress et Length doit se trouver dans la mémoire tampon décrite par le SRB donné.
Une fois que le pilote de port spécifique au système d’exploitation programme le contrôleur DMA système, il appelle la routine HwScsiDmaStarted du pilote miniport. HwScsiDmaStarted doit programmer l’adaptateur HBA pour commencer le transfert de données. Notez qu’un HBA peut interrompre l’appel du pilote miniport à ScsiPortIoMapTransfer et l’appel du pilote de port spécifique au système d’exploitation à la routine HwScsiDmaStarted du pilote miniport.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | srb.h (include Miniport.h, Scsi.h) |
Bibliothèque | Scsiport.lib |