Compartilhar via


UsePositionLock

O valor do registro UsePositionLock altera a forma como o PortCls serializa sua E/S. Habilitar essa configuração pode ser útil caso o driver de áudio sofra falhas atribuídas ao bloqueio global do dispositivo que o portcls usa para serialização. Lembre-se de que, quando UsePositionLock estiver habilitado, é responsabilidade do driver de áudio aplicar qualquer serialização entre os callbacks listados abaixo e outros callbacks de propriedade (se necessário). Esse sinalizador não está habilitado por padrão. Antes de ativá-lo, verifique se o piloto tem condições de corrida entre os retornos de chamada do piloto.

Use a seguinte configuração INF para habilitar esse comportamento.

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

Quando esse valor é definido como 1 ou superior, o portcls usa a trava de posição de streaming para serializar os retornos de chamada listados abaixo. Se ele não estiver presente ou definido como zero, o comportamento padrão será usar o bloqueio global do dispositivo. Esse valor é lido na primeira vez em que o dispositivo é adicionado.

Essa configuração INF será armazenada na instância do dispositivo no registro cujo caminho contém o GUID de mídia {4d36e96c-e325-11ce-bfc1-08002be10318}.

Essa configuração INF cria um valor de registro que contém o GUID de mídia {4d36e96c-e325-11ce-bfc1-08002be10318}, que inclui a instância do seu dispositivo de áudio.

A configuração UsePositionLock é compatível apenas com filtros WaveRT e Topologia. Portcls lê esse valor do Registro no tempo de adição do dispositivo e a configuração persiste até que o FDO (objeto de dispositivo funcional) seja removido.

Se portcls detectar que esse sinalizador está ativado, ele não serializará as propriedades a seguir com o bloqueio global do dispositivo.

Isso significa que os retornos de chamada do miniport a seguir não são processados em série com as outras solicitações de propriedade (incluindo solicitações de estado definido).