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. Pengandar porta 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 pengembaliannya 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 menyediakan 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.
Mengembalikan nilai
Alamat dasar logis yang dipetakan yang 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
Target Platform | Universal |
Header | storport.h (termasuk Storport.h) |
Pustaka | Storport.lib |