Compartilhar via


Intervalos de dados com valores discretos

Se o dispositivo de áudio der suporte a frequências de exemplo de 11, 22 e 44 kHz, por exemplo, você poderá especificar todas as três frequências como um intervalo de 11 a 44 kHz em uma única estrutura de KSDATARANGE_AUDIO . Essa técnica tem o benefício de ser concisa. Uma desvantagem potencial é que um manipulador de interseção de dados do buggy pode escolher um valor de parâmetro inválido (por exemplo, 27 kHz) que se enquadra no intervalo. Nesse caso, o driver do adaptador não tem outra opção a não ser falhar na chamada NewStream (por exemplo, consulte IMiniportWavePci::NewStream) que tenta criar um pin com o formato inválido.

Outra abordagem é fornecer uma lista de intervalos de dados em que cada intervalo de dados especifica um valor discreto em vez de um intervalo de valores para cada parâmetro. Por exemplo, em vez de fornecer um único intervalo de dados para especificar um intervalo de frequências de exemplo de 11 a 44 kHz, a matriz de intervalo de dados pode conter três elementos separados para 11, 22 e 44 kHz. Em cada um desses elementos, as frequências de exemplo máximas e mínimas são definidas com o mesmo valor (11, 22 ou 44 kHz). O benefício dessa abordagem é que ela elimina qualquer ambiguidade sobre os valores precisos com suporte. Além disso, se um valor discreto for preferencial em vez de outro, o intervalo de dados que contém esse valor poderá ser movido para uma posição na matriz que está à frente do intervalo de dados que contém o outro valor. Uma pequena desvantagem dos valores discretos é que eles podem aumentar o tamanho da matriz de intervalo de dados.