Fungsi StorPortAllocateDmaMemory (storport.h)
Fungsi ini adalah versi yang diperluas dari fungsi StorPortAllocateContiguousMemorySpecifyCacheNode. Ini mengalokasikan berbagai memori non-cache yang berdekatan secara fisik, tidak bertumpuk, dan mengembalikan alamat fisik buffer yang dialokasikan.
Sintaks
ULONG StorPortAllocateDmaMemory(
[in] PVOID HwDeviceExtension,
[in] SIZE_T NumberOfBytes,
[in] PHYSICAL_ADDRESS LowestAcceptableAddress,
[in] PHYSICAL_ADDRESS HighestAcceptableAddress,
[in, optional] PHYSICAL_ADDRESS BoundaryAddressMultiple,
[in] MEMORY_CACHING_TYPE CacheType,
[in] NODE_REQUIREMENT PreferredNode,
[out] PVOID *BufferPointer,
[out] PPHYSICAL_ADDRESS PhysicalAddress
);
Parameter
[in] HwDeviceExtension
Pointer ke ekstensi perangkat keras untuk adaptor bus host (HBA).
[in] NumberOfBytes
Jumlah byte yang akan dialokasikan.
[in] LowestAcceptableAddress
Alamat fisik terendah yang valid untuk alokasi. Misalnya, jika perangkat hanya dapat mereferensikan memori fisik dalam rentang 8 MB hingga 16 MB, nilai ini akan diatur ke 0x800000 (8 MB).
[in] HighestAcceptableAddress
Alamat fisik tertinggi yang berlaku untuk alokasi. Misalnya, jika perangkat hanya dapat mereferensikan memori fisik di bawah 16 MB, nilai ini akan diatur ke 0xFFFFFF (16 MB - 1).
[in, optional] BoundaryAddressMultiple
Alamat fisik beberapa yang tidak boleh dilintasi oleh alokasi ini.
[in] CacheType
Jenis cache yang diinginkan untuk pemetaan.
[in] PreferredNode
Simpul pilihan tempat alokasi harus dibuat jika halaman tersedia pada simpul tersebut.
[out] BufferPointer
Variabel yang menerima alamat awal blok memori yang dialokasikan. Setelah kembali dari rutinitas ini, jika variabel ini nol, rentang yang berdampingan tidak dapat ditemukan untuk memenuhi permintaan. Jika variabel ini bukan NULL, variabel ini berisi penunjuk (misalnya, alamat virtual dalam bagian sistem yang tidak disebarkan) ke memori yang dialokasikan secara fisik berdekatan.
[out] PhysicalAddress
Alamat fisik blok memori yang dialokasikan.
Nilai kembali
Fungsi ini mengembalikan kode STOR_STATUS.
Menampilkan kode | Deskripsi |
---|---|
STOR_STATUS_NOT_IMPLEMENTED | Fungsi ini tidak diimplementasikan pada sistem operasi aktif. |
STOR_STATUS_SUCCESS | Operasi berhasil. |
STOR_STATUS_INSUFFICIENT_RESOURCES | Operasi gagal mengalokasikan memori yang diminta karena sumber daya yang tidak mencukuumkan. |
Keterangan
Jika permintaan gagal, BufferPointer akan diatur ke NULL.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 10 (Versi 1803) |
Target Platform | Universal |
Header | storport.h |
Aturan kepatuhan DDI | StorPortIrql |