Fungsi StorPortGetDeviceBase (storport.h)
Rutinitas StorPortGetDeviceBase memetakan alamat I/O ke ruang alamat sistem.
Sintaks
STORPORT_API PVOID StorPortGetDeviceBase(
[in] PVOID HwDeviceExtension,
[in] INTERFACE_TYPE BusType,
[in] ULONG SystemIoBusNumber,
[in] STOR_PHYSICAL_ADDRESS IoAddress,
[in] ULONG NumberOfBytes,
[in] BOOLEAN InIoSpace
);
Parameter
[in] HwDeviceExtension
Penunjuk 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 yang dipetakan untuk HBA. Area ini tersedia untuk driver miniport segera setelah driver miniport memanggil StorPortInitialize. Driver port membebaskan memori ini ketika melepas perangkat.
[in] BusType
Menentukan jenis antarmuka bus I/O tempat HBA terhubung. Rutinitas HwStorFindAdapter driver miniport mendapatkan nilai untuk parameter ini dari anggota AdapterInterfaceType dari PORT_CONFIGURATION_INFORMATION input.
[in] SystemIoBusNumber
Menentukan nomor bus I/O yang ditetapkan sistem tempat HBA terhubung. Rutinitas HwStorFindAdapter mendapatkan nilai untuk parameter ini dari anggota SystemIoBusNumber dari PORT_CONFIGURATION_INFORMATION input.
[in] IoAddress
Menentukan alamat dasar relatif bus dari rentang yang digunakan oleh HBA. Rutinitas HwStorFindAdapter mendapatkan nilai untuk parameter ini dari salah satu elemen AccessRanges di PORT_CONFIGURATION_INFORMATION jika driver port menyediakan informasi konfigurasi rentang. Jika tidak, alamat ini dapat menjadi nilai yang dikembalikan oleh StorPortGetBusData atau nilai default yang disediakan driver miniport. Hindari menggunakan alamat dasar nol karena status pengembalian yang berhasil dapat bertentangan dengan status kesalahan (NULL).
[in] NumberOfBytes
Menentukan ukuran dalam byte rentang yang harus dicakup pemetaan. Rutinitas HwStorFindAdapter mendapatkan nilai parameter ini dari elemen AccessRanges yang sama dengan IoAddress jika driver port memasok informasi konfigurasi rentang. Jika tidak, nilai ini dapat dikembalikan oleh StorPortGetBusData atau default yang disediakan driver miniport. Bagaimanapun, driver tidak boleh mengakses perangkat keras di luar rentang yang dikembalikan dan dipetakan.
[in] InIoSpace
TRUE menunjukkan rentang yang akan dipetakan berada di ruang I/O, dan driver miniport akan meneruskan alamat yang dipetakan dalam rentang ini ke rutinitas baca/tulis port Storport untuk berkomunikasi dengan HBA. Rutinitas HwStorFindAdapter mendapatkan nilai parameter ini dari elemen AccessRanges yang sama dengan IoAddress. Perhatikan bahwa driver miniport harus membalikkan nilai anggota InMemorySpace dalam elemen jenis ACCESS_RANGE sebelum diteruskan ke StorPortGetDeviceBase sebagai argumen InIoSpace . FALSE menunjukkan bahwa rentang yang akan dipetakan berada di ruang memori.
Nilai kembali
Alamat dasar logis yang dipetakan sesuai dengan alamat relatif bus yang disediakan dalam parameter IoAddress .
Keterangan
Setiap driver miniport harus melewati alamat rentang akses logis yang dipetakan ke rutinitas baca/tulis port Storport dan rutinitas baca/tulis register Storport saat berkomunikasi dengan HBA-nya.
Rutinitas ini hanya mendukung alamat yang ditetapkan ke driver oleh manajer Plug and Play sistem (PnP).
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | storport.h (termasuk Storport.h) |
Pustaka | Storport.lib |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk