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硬體位置緩存器要求,驅動程式會填入 Register、 Width 和 Accuracy 成員,因為其他成員是時鐘緩存器特有的。 對於透過 KSPROPERTY_RTAUDIO_CLOCKREGISTER 硬體時鐘緩存器要求,驅動程式會填入整個結構。
時鐘快取器是計數器,會以驅動音訊裝置內部總線的內部硬體時鐘頻率遞增。 緩存器會以時鐘的每個刻度遞增一個。 註冊器會在裝置開啟時開始計算,並繼續執行,直到裝置關閉為止。 軟體會使用時鐘緩存器來同步處理兩個或多個裝置與獨立硬體時鐘。
成員 Numerator 和 分母 同時指定時鐘緩存器遞增的頻率。 頻率的計算方式是將 Numerator 除以 分母。
時鐘快取器會以音訊裝置內部時鐘的頻率遞增。 這是音訊裝置通常用來在其內部總線或外部編解碼器連結上時鐘事件的頻率。 硬體會藉由將內部時鐘頻率除以衍生音訊取樣頻率。
音訊裝置可以從晶元上的晶元冰箱或外部時鐘訊號衍生其內部時鐘。 例如,如果裝置衍生 16.5-MHz 內部時鐘,方法是將 33-MHz 外部時鐘除以兩個,則可以分別將分子和分母指定為 33,000,000 和 2。
Accuracy 參數會在位置或時鐘緩存器讀取中指定最大誤差。 這基本上是緩存器的更新速率表示法。 對於時鐘緩存器, Accuracy 參數會指出緩存器更新之間的時鐘刻度數目。 在上述 16.5-MHz 內部時鐘的範例中,如果時鐘緩存器每 4 個時鐘更新一次, 則 Accuracy 參數會設定為 4,因為緩存器需要以時鐘刻度為單位來表示時鐘緩存器的正確性。
對於位置快取器, Accuracy 參數會以位元組單位表示位置緩存器的正確性。 例如,2 通道、16 位 PCM 數據流的音訊畫面大小為 4 個字節。 如果位置快取器將 (遞增 2 倍,則畫面大小) 樣本時鐘每秒一次,精確度值為 8 個字節。 如果位置快取器會遞增 (四倍的畫面大小,) 樣本時鐘每四個刻度一次,精確度值為 16 個字節,依此類置。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。 |
標頭 | ksmedia.h |
另請參閱
KSPROPERTY_RTAUDIO_CLOCKREGISTER