UsePositionLock
UsePositionLock登錄值會變更 PortCls 序列化其 I/O 的方式。 如果您的音訊驅動程式因 portcls 用於序列化的全域裝置鎖定而發生問題,啟用此設定可能會很有説明。 請注意,啟用 UsePositionLock 時,音訊驅動程式會視需要套用下列回呼之間的任何序列化,以及其他屬性回呼 () 。 預設不會啟用此旗標。 開啟之前,請務必檢閱驅動程式是否有驅動程式回呼之間的任何競爭條件。
使用下列 INF 設定來啟用此行為。
[MyAudioDevice.AddReg]
HKR, DispatchSettings, UsePositionLock, 3, 01, 00, 00, 00
當此值設定為 1 或更新版本時,portcls 會使用串流位置鎖定來序列化下面所列的回呼。 如果不存在或設定為零,預設行為是使用全域裝置鎖定。 第一次新增裝置時會讀取此值。
此 INF 設定會儲存在登錄中的裝置實例下,其路徑包含 {4d36e96c-e325-11ce-bfc1-08002be10318} 的媒體 GUID。
此 INF 設定會建立登錄值,其中包含 {4d36e96c-e325-11ce-bfc1-08002be10318} 的媒體 GUID,其中包含音訊裝置的實例。
只有 WaveRT 和拓撲篩選器才支援 UsePositionLock 設定。 Portcls 會在裝置新增時讀取此登錄值,而且設定會持續存在,直到移除功能裝置物件 (FDO) 為止。
如果 portcls 偵測到此旗標已開啟,則不會使用全域裝置鎖定來序列化下列屬性。
{KSPROPSETID_RtAudio, KSPROPERTY_RTAUDIO_GETREADPACKET}
{KSPROPSETID_RtAudio, KSPROPERTY_RTAUDIO_SETWRITEPACKET}
{KSPROPSETID_RtAudio, KSPROPERTY_RTAUDIO_PRESENTATION_POSITION}
{KSPROPSETID_RtAudio, KSPROPERTY_RTAUDIO_PACKETCOUNT}
{KSPROPSETID_Audio,KSPROPERTY_AUDIO_POSITION}
{KSPROPSETID_Audio, KSPROPERTY_AUDIO_POSITIONEX}
這表示下列迷你埠的回呼不會與其他屬性要求序列化, (包括 set-state 要求) 。