KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION

KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION プロパティは、オーディオ データに対してドライバーが割り当てた循環バッファーを指定し、イベント通知の要件を識別します。

次の表は、このプロパティの機能をまとめたものです。

用法の要点テーブル

Yammer の入手 設定 移行先 プロパティ記述子の種類 プロパティ値の種類

はい

いいえ

ピン留めする

KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION

KSRTAUDIO_BUFFER

プロパティ記述子 (インスタンス データ) は、他のメンバーと共に KSPROPERTY 構造体を含む KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION 構造体で構成されます。 クライアントは、要求されたバッファー サイズを構造体に書き込みます。 特定のベース アドレスが必要な場合を除き、クライアントはベース アドレスを NULL として指定する必要があります。

このプロパティは、DMA 駆動イベント通知が必要な場合に使用されます。 NotificationCount メンバーに基づいて、登録されたイベントは循環バッファーを介してサイクルごとに 1 回 (最後) または 2 回 (中間点と末尾) に通知されます。 イベントは、KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION を正常に呼び出した後、KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT を使用して登録されます。

プロパティ値 (操作データ) は、KSRTAUDIO_BUFFER 型の構造体です。 ドライバーは、この構造体に実際のバッファー サイズ、ベース アドレス、および割り当てられている循環バッファーのメモリ バリア フラグを入力します。

戻り値

KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION プロパティ要求は、正常に完了したことを示すために STATUS_SUCCESS を返します。 それ以外の場合、要求は適切な失敗状態コードを返します。 次の表に、考えられる失敗状態コードの一部を示します。

状態コード 意味

STATUS_UNSUCCESSFUL

バッファー属性の組み合わせを指定した循環バッファーを割り当てることはできません。

STATUS_INSUFFICIENT_RESOURCES

割り当て不可のバッファーのメモリ。

STATUS_DEVICE_NOT_READY

デバイスの準備ができていません。

解説

ベース アドレスは、循環バッファーの開始時の仮想メモリ アドレスです。 クライアントは、このアドレスのバッファーに直接アクセスできます。 バッファーは仮想メモリ内で連続しています。 ドライバーは、バッファーが物理メモリ内で連続しているかどうかを判断します。

クライアントは、プロパティ記述子のベース アドレスを NULL に設定します。 ドライバーは、割り当てられたオーディオ バッファーの仮想アドレスにプロパティ値のベース アドレスを設定します。

通常、オーディオ ハードウェアでは、サンプル境界で開始および終了するか、ハードウェアに依存する他の種類のアラインメント制約を満たすオーディオ バッファーが必要です。 十分なメモリが使用可能な場合、バッファーの実際のサイズは、最も近いサンプルまたはその他のハードウェア制約境界で四捨五入 (繰り上げまたは切り捨て) された要求サイズです。 それ以外の場合、実際のサイズは、要求されたサイズより小さくすることができます。

KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION プロパティ要求が成功した場合、KSRTAUDIO_BUFFER 型の構造体であるプロパティ値には、ドライバーによって割り当てられたバッファーのアドレスとサイズが含まれます。

ピンを閉じると、このプロパティによって割り当てられたバッファーが自動的に解放されます。

要件

バージョン

Windows Vista 以降の Windows オペレーティング システムで使用できます。

ヘッダー

Ksmedia.h

関連項目

KSPROPERTY

KSRTAUDIO_BUFFER

KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION

KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT