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.
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 |