KSPROPERTY_RTAUDIO_BUFFER
KSPROPERTY_RTAUDIO_BUFFER 屬性會指定驅動程式配置的音訊資料迴圈緩衝區。
下表摘要說明此屬性的功能。
使用量摘要表格
Get | 集合 | 目標 | 屬性描述元類型 | 屬性值類型 |
---|---|---|---|---|
是 |
否 |
Pin |
屬性描述元 (實例資料) 是由包含 KSPROPERTY 結構的KSRTAUDIO_BUFFER_PROPERTY結構以及其他成員所組成。 用戶端會將其要求的緩衝區大小寫入結構中。 如果用戶端不需要使用特定基底位址,則必須將基底位址指定為 Null。
(作業資料) 屬性值是KSRTAUDIO_BUFFER類型的結構。 驅動程式會針對已配置迴圈緩衝區的實際緩衝區大小、基底位址和記憶體屏障旗標填滿此結構。
傳回值
KSPROPERTY_RTAUDIO_BUFFER屬性要求會傳回STATUS_SUCCESS,表示它已順利完成。 否則,要求會傳回適當的失敗狀態碼。 下表顯示一些可能的失敗狀態碼。
狀態碼 | 意義 |
---|---|
STATUS_UNSUCCESSFUL |
無法配置具有指定之緩衝區屬性組合的迴圈緩衝區。 |
STATUS_INSUFFICIENT_RESOURCES |
無法配置緩衝區的記憶體。 |
STATUS_DEVICE_NOT_READY |
裝置尚未就緒 |
備註
基底位址是迴圈緩衝區開頭的虛擬記憶體位址。 用戶端可以直接存取此位址的緩衝區。 緩衝區在虛擬記憶體中連續。 決定是否要讓實體記憶體中的緩衝區連續,保留給驅動程式。
用戶端應該將屬性描述元中的基底位址設定為 Null。 驅動程式會將屬性值中的基底位址設定為已配置音訊緩衝區的虛擬位址。
音訊硬體通常需要音訊緩衝區在範例界限上開始和結束,或符合其他類型的硬體相依對齊條件約束。 如果有足夠的記憶體可用,則緩衝區的實際大小是要求的大小四捨五入 (向上或向下) 到最接近的樣本或其他硬體限制界限。 實際大小至少必須是要求的大小;否則,音訊會話 API (WASAPI) 音訊引擎將不會使用緩衝區,而串流建立將會失敗。
如果KSPROPERTY_RTAUDIO_BUFFER屬性要求成功,則屬性值是類型為 KSRTAUDIO_BUFFER 的結構,其中包含驅動程式配置的緩衝區的位址和大小。
關閉針腳會自動釋放透過此屬性配置的緩衝區。
如果您想要事件通知,您必須呼叫 KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION ,而不是呼叫 KSPROPERTY_RTAUDIO_BUFFER。
規格需求
版本 |
可在 Windows Vista 和更新版本的 Windows 作業系統中使用。 |
標頭 |
Ksmedia.h |