次の方法で共有


KSRTAUDIO_HWREGISTER構造体 (ksmedia.h)

KSRTAUDIO_HWREGISTER構造体は、クライアントによって要求されたハードウェア レジスタに関するアドレスと追加情報を指定します。 これは、KSPROPERTY_RTAUDIO_POSITIONREGISTERと KSPROPERTY_RTAUDIO_CLOCKREGISTER を介したレジスタ要求に応答して、ドライバーによって 入力されます

構文

typedef struct {
  PVOID     Register;
  ULONG     Width;
  ULONGLONG Numerator;
  ULONGLONG Denominator;
  ULONG     Accuracy;
} KSRTAUDIO_HWREGISTER, *PKSRTAUDIO_HWREGISTER;

メンバー

Register

レジスタへのポインター。 このメンバーは、レジスタがマップされる仮想アドレスを指定します。

Width

レジスタの幅をビット単位で指定します。 このメンバーの値は、32 または 64 にすることができます。

Numerator

クロック レジスタがインクリメントされる周波数の分子を指定します。 次の備考を参照してください。 各種のデータ ソースの更新については、後述の「更新できるもの」セクションで説明します。

Denominator

クロック レジスタがインクリメントされる周波数の分母を指定します。 次の備考を参照してください。 各種のデータ ソースの更新については、後述の「更新できるもの」セクションで説明します。

Accuracy

クロックレジスタまたはポジションレジスタの精度を指定します。 次の「備考」セクションを参照してください。

注釈

KSPROPERTY_RTAUDIO_POSITIONREGISTERを介したハードウェア位置レジスタ要求の場合、他のメンバーはクロック レジスタに固有であるため、ドライバーは RegisterWidthAccuracy の各メンバーを入力します。 KSPROPERTY_RTAUDIO_CLOCKREGISTER経由のハードウェア クロック レジスタ要求の場合、ドライバーは構造体全体を埋めます。

クロック レジスタは、オーディオ デバイスの内部バスを駆動する内部ハードウェア クロックの周波数でインクリメントするカウンターです。 レジスタは、クロックの各ティックで 1 ずつインクリメントされます。 レジスタは、デバイスの電源がオンになったときにカウントを開始し、デバイスの電源がオフになるまで実行を続けます。 クロック レジスタは、2 つ以上のデバイスを独立したハードウェア クロックと同期するためにソフトウェアによって使用されます。

メンバー Numerator分母 を組み合わせて、クロック レジスタがインクリメントされる頻度を指定します。 頻度は、 分子分母で割ることによって計算されます。

クロック レジスタは、オーディオ デバイスの内部クロックの周波数でインクリメントされます。 これは、オーディオ デバイスが通常、内部バスまたは外部コーデック リンクでイベントをクロックするために使用する頻度です。 ハードウェアは、内部クロック周波数を分割してオーディオサンプル周波数を導き出します。

オーディオデバイスは、内蔵水晶発振器または外部クロック信号から内部クロックを派生させることができます。 たとえば、デバイスが 33 MHz 外部クロックを 2 で除算して 16.5 MHz の内部クロックを派生させる場合、分子と分母をそれぞれ 33,000,000 と 2 として指定できます。

Accuracy パラメーターは、位置またはクロック レジスタの読み取りの最大エラーを指定します。 これは、基本的にレジスタの更新速度を表します。 クロック レジスタの場合、 Accuracy パラメーターはレジスタ更新間のクロック ティック数を示します。 前の 16.5 MHz 内部クロックの例では、クロック レジスタが 4 クロックごとに更新される場合、レジスタはクロック レジスタの精度をクロック ティック単位で表す必要があるため、 Accuracy パラメーターは 4 に設定されます。

位置レジスタの場合、 Accuracy パラメーターは位置レジスタの精度をバイト単位で表します。 たとえば、2 チャネルの 16 ビット PCM ストリームのオーディオ フレーム サイズは 4 バイトです。 位置レジスタがサンプル クロックの 1 秒のティックごとに 1 回 (フレーム サイズの 2 倍) インクリメントされる場合、精度の値は 8 バイトです。 位置レジスタがサンプル クロックの 4 番目のティックごとに (フレーム サイズの 4 倍) インクリメントされる場合、精度の値は 16 バイトになります。

要件

要件
サポートされている最小のクライアント Windows Vista 以降の Windows オペレーティング システムで使用できます。
Header ksmedia.h

こちらもご覧ください

KSPROPERTY_RTAUDIO_CLOCKREGISTER

KSPROPERTY_RTAUDIO_POSITIONREGISTER

KSRTAUDIO_HWREGISTER_PROPERTY