IPortWaveRTStream::MapAllocatedPages 方法 (portcls.h)

方法會將 MapAllocatedPages 先前配置的實體頁面清單對應至可從核心模式存取的連續虛擬記憶體區塊。

語法

PVOID MapAllocatedPages(
  [in] PMDL                MemoryDescriptorList,
  [in] MEMORY_CACHING_TYPE CacheType
);

參數

[in] MemoryDescriptorList

將對應的記憶體描述元清單指標 (MDL) 。 您可以呼叫 IPortWaveRTStream::AllocatePagesForMdl IPortWaveRTStream::AllocateContiguousPagesForMdl 來配置 MDL。

[in] CacheType

指定快取類型。 將此參數設定為下列其中一個MEMORY_CACHING_TYPE列舉值:MmNonCached、MmCachedMmWriteCombined

傳回值

MapAllocatedPages 會傳回虛擬記憶體中對應緩衝區的起始位址。 如果方法無法對應緩衝區,則會傳回 NULL

備註

由於 Windows 音訊堆疊不支援表示緩衝區內存存取對齊需求的機制,因此音訊驅動程式必須針對未強制執行平臺特定對齊需求的對應記憶體緩衝區選取快取類型。 換句話說,音訊驅動程式用於對應記憶體緩衝區的快取類型,不得假設任何特定平臺的記憶體對齊需求。

此方法會將 MDL 中的實體記憶體頁面對應至核心模式虛擬記憶體。 一般而言,如果迷你埠驅動程式需要軟體存取音頻緩衝區的散佈收集清單,則會呼叫此方法。 在此情況下,散佈收集清單的記憶體必須由 IPortWaveRTStream::AllocatePagesForMdlIPortWaveRTStream::AllocateContiguousPagesForMdl 方法配置。

WaveRT 迷你埠驅動程式不應該需要軟體存取音訊緩衝區本身。

MapAllocatedPages 類似於 MmMapLockedPagesSpecifyCache 函式的作業。 迷你埠驅動程式負責在釋放記憶體之前解除對應。 如需詳細資訊,請參閱 IPortWaveRTStream::UnmapAllocatedPages

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。
目標平台 Universal
標頭 portcls.h
IRQL 被動層級。

另請參閱

IPortWaveRTStream

IPortWaveRTStream::AllocateContiguousPagesForMdl

IPortWaveRTStream::AllocatePagesForMdl

IPortWaveRTStream::UnmapAllocatedPages

MDL

MEMORY_CACHING_TYPE

MmMapLockedPagesSpecifyCache