共用方式為


IPortWaveRTStream::AllocateContiguousPagesForMdl 方法 (portcls.h)

AllocateContiguousPagesForMdl 方法會配置連續、非分頁、實體記憶體頁面的清單,並傳回描述它們的記憶體描述元清單指標(MDL)。

語法

PMDL AllocateContiguousPagesForMdl(
  [in] PHYSICAL_ADDRESS LowAddress,
  [in] PHYSICAL_ADDRESS HighAddress,
  [in] SIZE_T           TotalBytes
);

參數

[in] LowAddress

指定可從中配置 MDL 記憶體之位址範圍的低端。

[in] HighAddress

指定可從中配置 MDL 記憶體之位址範圍的高端。

[in] TotalBytes

指定要配置給 MDL 的位元組總數。 這個方法一律會配置記憶體分頁的整數數目。

傳回值

AllocateContiguousPagesForMdl 會傳回描述實體記憶體頁面清單的 MDL (PMDL) 指標。 如果方法無法設定要求的緩衝區,則會傳回 null

言論

驅動程式會呼叫此方法,以配置實體連續記憶體頁面的區塊。 MDL 中的所有物理記憶體頁面都落在 LowAddress 所指定的位址範圍內,HighAddress 參數。 如果有足夠的記憶體可用,記憶體配置就是要求的大小四捨五入至下一頁;否則,呼叫會失敗。

在系統執行一段時間之後,系統的非分頁記憶體集區通常會變得分散,這會增加要求配置大量連續物理記憶體區塊的機率。 如果音訊裝置的 DMA 控制器不需要連續的實體記憶體頁面,驅動程式必須改為呼叫 IPortWaveRTStream::AllocatePagesForMdl。 不同於 AllocateContiguousPagesForMdlAllocatePagesForMdl 方法不會受到記憶體片段的影響。

AllocateContiguousPagesforMdl 方法會配置鎖定但未對應的記憶體頁面。 如果迷你埠驅動程式需要軟體存取此記憶體,迷你埠驅動程序必須後續呼叫 IPortWaveRTStream::MapAllocatedPages 將頁面對應至內核模式地址空間。

要求

要求 價值
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows作系統中使用。
目標平臺 普遍
標頭 portcls.h
IRQL 被動層級

另請參閱

IPortWaveRTStream

IPortWaveRTStream::AllocatePagesForMdl

IPortWaveRTStream::MapAllocatedPages