Freigeben über


ScsiPortIoMapTransfer-Funktion (srb.h)

Die ScsiPortIoMapTransfer-Routine richtet den DMA-Systemcontroller für einen Miniporttreiber ein, um Daten über einen untergeordneten HBA zu übertragen.

Hinweis Der SCSI-Porttreiber und die SCSI-Miniporttreibermodelle können in Zukunft geändert oder nicht mehr verfügbar sein. Stattdessen wird empfohlen, die Modelle Storport-Treiber und Storport-Miniporttreiber zu verwenden.
 

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

Weitere Informationen

HwScsiDmaStarted

ScsiPortFlushDma