共用方式為


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

另請參閱

StorPortFreeDmaMemory