UsePositionLock

UsePositionLock 레지스트리 값은 PortCls가 해당 I/O를 직렬화하는 방법을 변경합니다. 이 설정을 사용하도록 설정하면 오디오 드라이버가 포트클이 직렬화에 사용하는 전역 디바이스 잠금으로 인한 결함이 발생하는 경우에 유용할 수 있습니다. UsePositionLock을 사용하도록 설정하면 아래 나열된 콜백과 기타 속성 콜백(필요한 경우) 간에 serialization을 적용하는 것은 오디오 드라이버의 요지입니다. 이 플래그는 기본적으로 사용하도록 설정되지 않습니다. 켜기 전에 드라이버의 콜백 간의 경합 상태에 대해 드라이버를 검토해야 합니다.

다음 INF 설정을 사용하여 이 동작을 사용하도록 설정합니다.

[MyAudioDevice.AddReg]
HKR, DispatchSettings, UsePositionLock, 3, 01, 00, 00, 00

이 값을 1 이상으로 설정하면 portcls는 스트리밍 위치 잠금을 사용하여 아래에 나열된 콜백을 직렬화합니다. 존재하지 않거나 0으로 설정된 경우 기본 동작은 전역 디바이스 잠금을 사용하는 것입니다. 이 값은 디바이스를 처음 추가할 때 읽습니다.

이 INF 설정은 {4d36e96c-e325-11ce-bfc1-08002be10318}의 미디어 GUID가 포함된 레지스트리의 디바이스 instance 아래에 저장됩니다.

이 INF 설정은 오디오 디바이스의 instance 포함하는 {4d36e96c-e325-11ce-bfc1-08002be10318}의 미디어 GUID를 포함하는 레지스트리 값을 만듭니다.

UsePositionLock 설정은 WaveRT 및 토폴로지 필터에서만 지원됩니다. Portcls는 디바이스 추가 시간에 이 레지스트리 값을 읽고 FDO(기능 디바이스 개체)가 제거될 때까지 설정이 유지됩니다.

portcls에서 이 플래그가 켜진 것을 감지하면 전역 디바이스 잠금을 사용하여 다음 속성을 직렬화하지 않습니다.

즉, 다음 미니포트의 콜백은 다른 속성 요청(set-state 요청 포함)과 함께 직렬화되지 않습니다.