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,其中包括音频设备的实例。

UsePositionLock 设置仅在 WaveRT 和拓扑筛选器上受支持。 Portcls 在设备添加时读取此注册表值,设置将一直保留,直到删除功能设备对象 (FDO)。

如果 portcls 检测到此标志处于打开状态,则它不会使用全局设备锁定来序列化以下属性。

这意味着,以下微型端口的回调未使用其他属性请求(包括设置状态请求)进行序列化。