次の方法で共有


IPortWaveRTStream::MapAllocatedPages メソッド (portcls.h)

メソッドは MapAllocatedPages 、以前に割り当てられた物理ページの一覧を、カーネル モードからアクセスできる仮想メモリの連続したブロックにマップします。

構文

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

パラメーター

[in] MemoryDescriptorList

マップされるメモリ記述子リスト (MDL) へのポインター。 MDL は、 IPortWaveRTStream::AllocatePagesForMdl または IPortWaveRTStream::AllocateContiguousPagesForMdl を呼び出すことによって割り当てることができます。

[in] CacheType

キャッシュの種類を指定します。 このパラメーターを、mmNonCached、MmCached、または MmWriteCombined のいずれかのMEMORY_CACHING_TYPE列挙値に設定します。

戻り値

MapAllocatedPages は、仮想メモリ内のマップされたバッファーの開始アドレスを返します。 メソッドがバッファーをマップできない場合は、 NULL を返します。

注釈

Windows オーディオ スタックではバッファーのメモリ アクセスアラインメント要件を表すメカニズムがサポートされていないため、オーディオ ドライバーは、プラットフォーム固有のアラインメント要件を課さないマップされたメモリ バッファーのキャッシュの種類を選択する必要があります。 言い換えると、マップされたメモリ バッファーに対してオーディオ ドライバーによって使用されるキャッシュの種類は、特定のプラットフォームのメモリアラインメント要件に関する仮定を行う必要はありません。

このメソッドは、MDL 内の物理メモリ ページをカーネル モードの仮想メモリにマップします。 通常、ミニポート ドライバーは、オーディオ バッファーの散布図リストへのソフトウェア アクセスが必要な場合は、このメソッドを呼び出します。 この場合、分散収集リストのストレージは 、IPortWaveRTStream::AllocatePagesForMdl メソッドまたは IPortWaveRTStream::AllocateContiguousPagesForMdl メソッドによって割り当 てられている必要があります。

WaveRT ミニポート ドライバーでは、オーディオ バッファー自体へのソフトウェア アクセスは必要ありません。

MapAllocatedPages は、 MmMapLockedPagesSpecifyCache 関数と 同様の操作です。 ミニポート ドライバーは、解放する前にメモリのマップを解除する役割を担います。 詳細については、「 IPortWaveRTStream::UnmapAllocatedPages」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista 以降の Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header portcls.h
IRQL パッシブ レベル。

こちらもご覧ください

IPortWaveRTStream

IPortWaveRTStream::AllocateContiguousPagesForMdl

IPortWaveRTStream::AllocatePagesForMdl

IPortWaveRTStream::UnmapAllocatedPages

Mdl

MEMORY_CACHING_TYPE

MmMapLockedPagesSpecifyCache