Partilhar via


Intervalos de dados com valores discretos

Se o seu dispositivo de áudio suportar frequências de amostra de 11, 22 e 44 kHz, por exemplo, pode especificar as três frequências como um intervalo de 11 a 44 kHz numa estrutura de KSDATARANGE_AUDIO única. Esta técnica tem a vantagem de ser concisa. Uma desvantagem potencial é que um manipulador de interseção de dados com bugs pode escolher um valor de parâmetro inválido (por exemplo, 27 kHz) que esteja dentro do 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 pino 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 amostra 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 destes elementos, as frequências máximas e mínimas da amostra são fixadas para o mesmo valor (11, 22 ou 44 kHz). O benefício dessa abordagem é que ela elimina qualquer ambiguidade sobre os valores precisos que são suportados. Além disso, se um valor discreto for preferido em relação a outro, o intervalo de dados que contém esse valor pode 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.