KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION
KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION プロパティは、オーディオ データに対してドライバーが割り当てた循環バッファーを指定し、イベント通知の要件を識別します。
次の表は、このプロパティの機能をまとめたものです。
用法の要点テーブル
Yammer の入手 | 設定 | 移行先 | プロパティ記述子の種類 | プロパティ値の種類 |
---|---|---|---|---|
はい |
いいえ |
ピン留めする |
プロパティ記述子 (インスタンス データ) は、他のメンバーと共に 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 |