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。 不同於 AllocateContiguousPagesForMdl
,AllocatePagesForMdl 方法不會受到記憶體片段的影響。
AllocateContiguousPagesforMdl
方法會配置鎖定但未對應的記憶體頁面。 如果迷你埠驅動程式需要軟體存取此記憶體,迷你埠驅動程序必須後續呼叫 IPortWaveRTStream::MapAllocatedPages 將頁面對應至內核模式地址空間。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows作系統中使用。 |
目標平臺 | 普遍 |
標頭 | portcls.h |
IRQL | 被動層級 |