KSPROPERTY_AUDIO_WAVERT_CURRENT_WRITE_POSITION

KSPROPERTY_AUDIO_WAVERT_CURRENT_WRITE_POSITION屬性要求會以位元組為單位指定 WaveRT 緩衝區的目前寫入位置。 卸載驅動程式可以使用這個寫入位置資訊來知道 WaveRT 緩衝區中有多少有效資料。

使用量摘要資料表

Get 集合 目標 屬性描述項類型 屬性值類型

透過 Pin 實例的節點

KSP_NODE

ULONG

傳回值

KSPROPERTY_AUDIO_WAVERT_CURRENT_WRITE_POSITION屬性要求會傳回STATUS_SUCCESS,表示它已順利完成。 否則,要求會傳回適當的錯誤狀態碼。

備註

若要進一步瞭解如何解譯此屬性要求提供的資訊,請假設大小為 n 個位元組的迴圈緩衝區。 寫入任何資料之前的初始寫入位置為 0。 資料會以區塊為單位寫入緩衝區,而區塊是一個倍數 的顯示方式為一個包含于其中一個的顯示單位。nBlockAlign 位元組。

例如,緩衝區可能包含 20 毫秒的 16 位 PCM 身歷聲資料,取樣為 48000 Hz。 因此,根據此範例 nBlockAlign = 2 * 16 / 8 = 4 個位元組的顯示方式,于此範例中, 根據顯示于其上之 NBlockAlign 成員的描述。 這表示緩衝區的長度會是 48000 * 20 / 1000 = 960 框架,或 960 * 4 = 3840 個位元組。

第一個 Set 要求會指定寫入緩衝區的位元組數目。 而且因為「寫入位置」是以位元組表示,所以 1920 的值會指定一半的緩衝區大小,而 3840 的值則表示完整的緩衝區大小。 為了判斷寫入的新位元組數目,為了發出後續 的 Set 要求,下列虛擬程式碼會示範如何執行計算:

if new write position > old write position:
     bytes written = new write position – old write position
if new write position < old write position, we’ve wrapped:
     bytes written = (new write position + buffer size) – old write position
if new write position = old write position, we’ve had a glitch
     log a "duplicate write position" glitch event

規格需求

版本

Windows 8

標頭

Ksmedia.h

另請參閱

電壓X