次の方法で共有


IMiniportWaveRTStreamNotification::AllocateBufferWithNotification メソッド (portcls.h)

メソッドは AllocateAudioBufferWithNotification 、DMA 駆動型イベント通知を実装する場合に、オーディオ データに循環バッファーを割り当てます。 イベント通知が不要な場合は、 IMiniportWaveRTStream::AllocateAudioBuffer を使用する必要があります。

構文

NTSTATUS AllocateBufferWithNotification(
  [in]  ULONG               NotificationCount,
  [in]  ULONG               RequestedSize,
  [out] PMDL                *AudioBufferMdl,
  [out] ULONG               *ActualSize,
  [out] ULONG               *OffsetFromFirstPage,
  [out] MEMORY_CACHING_TYPE *CacheType
);

パラメーター

[in] NotificationCount

バッファー サイクルごとに必要な通知の数を指定します。 有効な値は 1 または 2 です。ここで、1 は循環バッファーの末尾に 1 つの通知を示し、2 はバッファー サイクルごとに 2 つの通知を示します。1 つはバッファーの中間点に 1 つ、末尾に 1 つを示します。

[in] RequestedSize

オーディオ バッファーの要求されたサイズをバイト単位で指定します。

[out] AudioBufferMdl

オーディオ バッファーを記述するメモリ記述子リスト (MDL) の出力ポインター。 このパラメーターは、メソッドが MDL へのポインターを書き込む呼び出し元によって割り当てられたポインター変数を指します。

[out] ActualSize

割り当てられたバッファーの実際のサイズ (バイト単位) の出力ポインター。 このパラメーターは、メソッドがサイズ値を書き込む ULONG 変数を指します。

[out] OffsetFromFirstPage

MDL の最初のページの先頭からのバッファーのオフセット (バイト単位) の出力ポインター。 このパラメーターは、メソッドがオフセット値を書き込む呼び出し元によって割り当てられた ULONG 変数を指します。

[out] CacheType

クライアントがオーディオ バッファーに対して要求するキャッシュの種類を指定します。 このパラメーターは 、MEMORY_CACHING_TYPE 列挙値です

戻り値

AllocateBufferWithNotification は、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、メソッドは適切なエラー状態コードを返します。 次の表は、考えられるエラー状態コードの一部を示しています。

リターン コード 説明
STATUS_UNSUCCESSFUL
ドライバーは、バッファー属性の指定された組み合わせをサポートしていません。
STATUS_INSUFFICIENT_RESOURCES
バッファーの割り当てに使用できるメモリが不足しています。
STATUS_DEVICE_NOT_READY
デバイスの準備ができていません。

注釈

メモ Intel High Definition Audio Codecs のミニポートでは、キャッシュの一貫性を確保するために、MmWriteCombined の CacheType を指定する必要があります。 これは、Intel High Definition Audio Controller がスヌープ以外の操作用に構成されている可能性があるためです。
 
クライアントから KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION 要求を受け取った後、ポート ドライバーは メソッドを AllocateBufferWithNotification 呼び出して、後でポート ドライバーがクライアントの仮想アドレス空間にマップできる循環バッファーを割り当てます。 AllocateBufferWithNotification は、 IMiniportWaveRTStream::AllocateAudioBuffer と同様の方法で動作します。 さらに、 AllocateBufferWithNotification DMA ドリブン イベント通知が必要であることを WaveRT ポート ドライバーに識別し、循環バッファーのサイクルごとに必要な通知の数を指定します。

要件

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

こちらもご覧ください

IMiniportWaveRTStream::AllocateAudioBuffer

IMiniportWaveRTStreamNotification

KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION

Mdl

MEMORY_CACHING_TYPE