次の方法で共有


KSPROPERTY_RTAUDIO_POSITIONREGISTER

KSPROPERTY_RTAUDIO_POSITIONREGISTER プロパティは、特定のストリームのオーディオ デバイスの位置レジスターを、クライアントがアクセスできる仮想メモリの場所にマップします。

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

用法の要点テーブル

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

はい

いいえ

ピン留めする

KSRTAUDIO_HWREGISTER_PROPERTY

KSRTAUDIO_HWREGISTER

プロパティ記述子 (インスタンス データ) は、KSPROPERTY 構造体を含む KSRTAUDIO_HWREGISTER_PROPERTY 構造体です。 要求を送信する前に、クライアントはレジスタの優先ベース アドレスを示す値を持つ構造体を読み込みます。

プロパティ値 (操作データ) は、プロパティ ハンドラーがハードウェア位置レジスターをマップした仮想アドレスを書き込む KSRTAUDIO_HWREGISTER 構造体です。 クライアントは、このアドレスからレジスタを直接読み取ることができます。 KSRTAUDIO_HWREGISTER 構造体は、位置レジスターがそれ自体をインクリメントする速度も指定します。

戻り値

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

解説

通常、オーディオ アプリケーションはオーディオ ストリームの現在位置を監視する必要があります。 この位置は、ストリームの先頭からのバイト オフセットとして指定されます。

  • レンダリング ストリームの場合、ストリーム位置は、デジタルからアナログへのコンバーター (DAC) を介して現在再生されているオーディオ フレームのバイト オフセットです。

  • キャプチャ ストリームの場合、ストリーム位置は、アナログからデジタルへのコンバーター (ADC) を介して現在記録されているオーディオ フレームのバイト オフセットです。

一部のオーディオ デバイスには、ストリームの実行中に継続的にインクリメントされる位置レジスターが含まれています。 すべてのデジタルおよびアナログ機能を 1 つのチップに組み込むオーディオ デバイスの場合、位置レジスターは通常、現在のストリーム位置を直接示します。

ただし、デジタル機能とアナログ機能を別々のバス コントローラーおよびコーデック チップに分割するチップセットの場合、位置レジスターは通常、バス コントローラー チップ内にあり、以下を示します。

  • レンダリング ストリームの場合、位置レジスターは、バス コントローラーがコーデックに書き込んだ最後のオーディオ フレームのバイト オフセットを示します。

  • キャプチャ ストリームの場合、位置レジスターは、バス コントローラーがコーデックに書き込んだ最後のオーディオ フレームのバイト オフセットを示します。

どちらの場合も、位置レジスターの値にはコーデック経由の遅延は含まれません。 クライアントがコーデック遅延を決定した場合は、位置レジスター値にこの遅延を追加して、実際のストリーム位置 (DAC または ADC) を推定できます。 コーデック経由の最悪の遅延を指定する CodecDelay 値の場合は、KSPROPERTY_RTAUDIO_HWLATENCY プロパティをクエリできます。

成功した場合、KSPROPERTY_RTAUDIO_POSITIONREGISTER プロパティ要求は、位置レジスターを、クライアントで指定されたユーザー モードまたはカーネル モードからクライアントからアクセスできる仮想メモリ アドレスにマップします。 その後、クライアントはこのアドレスから読み取り、位置レジスターの現在の値を取得します。

オーディオ ハードウェアが仮想アドレスにマップできる位置レジスターをサポートしていない場合、プロパティ要求は失敗します。 この場合クライアントは、KSPROPERTY_AUDIO_POSITION プロパティからの位置を決定する必要があります。

位置レジスターのマッピングは、ピンが閉じると破棄されます。 クライアントは、開かれたピンの有効期間中に 1 回だけレジスターをマップでき、その後のピンの位置レジスターを再マップする呼び出しは失敗します。

通常、位置レジスターの読み取りは、ユーザー モード クライアントのユーザー モードとカーネル モードの切り替えを必要とする KSPROPERTY_AUDIO_POSITION 要求を送信するよりも高速です。

要件

バージョン

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

ヘッダー

Ksmedia.h

関連項目

KSPROPERTY

KSRTAUDIO_HWREGISTER

KSRTAUDIO_HWREGISTER_PROPERTY

KSPROPERTY_AUDIO_POSITION

KSPROPERTY_RTAUDIO_HWLATENCY