Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.
{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_POSITIONEX}
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).