ScsiPortIoMapTransfer-Funktion (srb.h)
Die ScsiPortIoMapTransfer-Routine richtet den DMA-Systemcontroller für einen Miniporttreiber ein, um Daten über einen untergeordneten HBA zu übertragen.
Syntax
SCSIPORT_API VOID ScsiPortIoMapTransfer(
[in] PVOID HwDeviceExtension,
[in] PSCSI_REQUEST_BLOCK Srb,
[in] PVOID LogicalAddress,
[in] ULONG Length
);
Parameter
[in] HwDeviceExtension
Zeiger auf die Hardwaregeräteerweiterung. Hierbei handelt es sich um einen HBA-Speicherbereich, den der Porttreiber im Namen des Miniporttreibers ordnet und initialisiert. Miniporttreiber speichern normalerweise HBA-spezifische Informationen in dieser Erweiterung, z. B. den Zustand des HBA und die zugeordneten Zugriffsbereiche des HBA. Dieser Bereich steht dem Miniporttreiber im DeviceExtension-HwDeviceExtension-Member> des HBA-Geräteobjekts unmittelbar nach dem Aufruf von ScsiPortInitialize durch den Miniporttreiber zur Verfügung. Der Porttreiber gibt diesen Arbeitsspeicher frei, wenn er das Gerät entfernt.
[in] Srb
Zeiger auf den SCSI-Anforderungsblock für die DMA-Übertragung.
[in] LogicalAddress
Gibt die Startadresse für den Übertragungsvorgang an. Dieser Wert kann die Basisadresse eines Puffers sein, in den oder von dem Daten übertragen werden sollen. Dieser Wert kann ein Offset innerhalb eines solchen Puffers sein.
[in] Length
Gibt die Anzahl der zu übertragenden Bytes an.
Rückgabewert
Keine
Bemerkungen
Nur Miniporttreiber von HBAs, die einen System-DMA-Controller (untergeordnetes DMA) verwenden, rufen ScsiPortIoMapTransfer auf. Diese Routine muss aufgerufen werden, bevor ein solcher Miniporttreiber seinen HBA zum Übertragen von Daten einrichtt. Der von LogicalAddress und Length angegebene Bereich muss sich innerhalb des Puffers befinden, der vom angegebenen SRB beschrieben wird.
Nachdem der betriebssystemspezifische Porttreiber den DMA-Controller des Systems programmiert hat, ruft er die HwScsiDmaStarted-Routine des Miniporttreibers auf. HwScsiDmaStarted sollte den HBA so programmieren, dass die Datenübertragung gestartet wird. Beachten Sie, dass ein HBA zwischen dem Aufruf des Miniporttreibers an ScsiPortIoMapTransfer und dem Aufruf des betriebssystemspezifischen Porttreibers an die HwScsiDmaStarted-Routine des Miniporttreibers unterbrechen kann.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | srb.h (einschließlich Miniport.h, Scsi.h) |
Bibliothek | Scsiport.lib |