StorPortAllocateDmaMemory 函式 (storport.h)
此函式是 storPortAllocateContiguousMemorySpecifyCacheNode 函式 的擴充版本。 它會配置一系列實際連續的非快取、非分頁記憶體,並傳回所配置緩衝區的實體位址。
語法
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
);
參數
[in] HwDeviceExtension
主機總線適配卡 (HBA) 的硬體裝置擴充功能指標。
[in] NumberOfBytes
要配置的位元元組數目。
[in] LowestAcceptableAddress
對配置有效的最低實體位址。 例如,如果裝置只能參考 8 MB 到 16 MB 範圍內的物理記憶體,此值會設定為 0x800000 (8 MB)。
[in] HighestAcceptableAddress
配置的有效最高實體位址。 例如,如果裝置只能參考低於 16 MB 的實體記憶體,此值會設定為 0xFFFFFF (16 MB - 1)。
[in, optional] BoundaryAddressMultiple
此配置不可交叉的實體位址倍數。
[in] CacheType
對應的所需快取類型。
[in] PreferredNode
如果該節點上有頁面可用,則應該從中建立配置的慣用節點。
[out] BufferPointer
接收已配置記憶體區塊起始位址的變數。 從這個例程傳回時,如果此變數為零,則找不到連續範圍來滿足要求。 如果這個變數不是 NULL,它就會包含指向配置之實體連續記憶體的指標(例如,系統非分頁部分的虛擬位址)。
[out] PhysicalAddress
已配置記憶體區塊的實體位址。
傳回值
此函式會傳回STOR_STATUS程序代碼。
傳回碼 | 描述 |
---|---|
STOR_STATUS_NOT_IMPLEMENTED | 此函式不會在作用中的作系統上實作。 |
STOR_STATUS_SUCCESS | 作業成功。 |
STOR_STATUS_INSUFFICIENT_RESOURCES | 作業因為資源不足而無法配置要求的記憶體。 |
言論
如果要求失敗,BufferPointer 將會設定為 NULL。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 (版本 1803) |
目標平臺 | 普遍 |
標頭 | storport.h |
DDI 合規性規則 | StorPortIrql |