Fungsi ScsiPortIoMapTransfer (srb.h)
Rutinitas ScsiPortIoMapTransfer menyiapkan pengontrol DMA sistem untuk driver miniport untuk mentransfer data melalui HBA bawahan.
Sintaks
SCSIPORT_API VOID ScsiPortIoMapTransfer(
[in] PVOID HwDeviceExtension,
[in] PSCSI_REQUEST_BLOCK Srb,
[in] PVOID LogicalAddress,
[in] ULONG Length
);
Parameter
[in] HwDeviceExtension
Arahkan ke ekstensi perangkat keras. Ini adalah area penyimpanan per HBA yang dialokasikan dan diinisialisasi driver port atas nama driver miniport. Driver Miniport biasanya menyimpan informasi khusus HBA dalam ekstensi ini, seperti status HBA dan rentang akses HBA yang dipetakan. Area ini tersedia untuk driver miniport di deviceExtension-HwDeviceExtension> anggota objek perangkat HBA segera setelah driver miniport memanggil ScsiPortInitialize. Pengandar porta membebaskan memori ini ketika melepas perangkat.
[in] Srb
Penunjuk ke blok permintaan SCSI untuk transfer DMA.
[in] LogicalAddress
Menentukan alamat awal untuk operasi transfer. Nilai ini dapat menjadi alamat dasar buffer tempat atau dari mana data akan ditransfer. Nilai ini bisa menjadi offset dalam buffer seperti itu.
[in] Length
Menentukan jumlah byte yang akan ditransfer.
Nilai kembali
Tidak ada
Keterangan
Hanya driver miniport HBA yang menggunakan sistem pengontrol DMA (subordinat DMA) yang memanggil ScsiPortIoMapTransfer. Rutinitas ini harus dipanggil sebelum driver miniport seperti itu mengatur HBA-nya untuk mentransfer data. Rentang yang ditentukan oleh LogicalAddress dan Length harus berada dalam buffer yang dijelaskan oleh SRB yang diberikan.
Setelah driver port khusus sistem operasi memprogram pengontrol DMA sistem, ia menyebut rutinitas HwScsiDmaStarted driver miniport. HwScsiDmaStarted harus memprogram HBA untuk memulai transfer data. Perhatikan bahwa HBA dapat mengganggu antara panggilan driver miniport ke ScsiPortIoMapTransfer dan panggilan driver port khusus sistem operasi ke rutinitas HwScsiDmaStarted driver miniport.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | srb.h (termasuk Miniport.h, Scsi.h) |
Pustaka | Scsiport.lib |