Freigeben über


ScsiPortIoMapTransfer-Funktion (srb.h)

Die ScsiPortIoMapTransfer Routine richtet den System-DMA-Controller für einen Miniporttreiber ein, um Daten über eine untergeordnete HBA zu übertragen.

Hinweis Der SCSI-Porttreiber und die SCSI-Miniporttreibermodelle können in Zukunft geändert oder nicht mehr verfügbar sein. Stattdessen empfehlen wir die Verwendung des Storport-Treibers und Storport Miniport Treibermodelle.
 

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. Dies ist ein Speicherbereich pro HBA, den der Porttreiber im Namen des Miniporttreibers zuordnet und initialisiert. Miniporttreiber speichern in der Regel HBA-spezifische Informationen in dieser Erweiterung, z. B. den Zustand der HBA und die zugeordneten Zugriffsbereiche der HBA. Dieser Bereich steht dem Miniporttreiber im DeviceExtension->HwDeviceExtension Mitglied des Geräteobjekts der HBA unmittelbar nach dem Aufruf ScsiPortInitializezur Verfügung. Der Porttreiber gibt diesen Speicher frei, wenn es 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 bzw. aus 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

Nichts

Bemerkungen

Nur Miniporttreiber von HBAs, die einen System-DMA-Controller (untergeordnete DMA)-Aufruf ScsiPortIoMapTransferverwenden. Diese Routine muss aufgerufen werden, bevor ein solcher Miniporttreiber seine HBA zum Übertragen von Daten einrichte. Der durch die LogicalAddress und Length angegebene Bereich muss sich innerhalb des durch den angegebenen SRB beschriebenen Puffers befinden.

Nachdem der betriebssystemspezifische Porttreiber den DMA-Controller des Systems programmiert hat, ruft er die HwScsiDmaStarted Routine des Miniporttreibers auf. HwScsiDmaStarted sollte die HBA programmieren, um die Datenübertragung zu starten. Beachten Sie, dass ein HBA zwischen dem Aufruf des Miniporttreibers an ScsiPortIoMapTransfer und dem Aufruf des betriebssystemspezifischen Porttreibers an den HwScsiDmaStarted Routine des Miniporttreibers unterbrechen kann.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- srb.h (include Miniport.h, Scsi.h)
Library Scsiport.lib

Siehe auch

HwScsiDmaStarted

ScsiPortFlushDma-