Intervalli di dati con valori discreti
Se il dispositivo audio supporta le frequenze di esempio di 11, 22 e 44 kHz, ad esempio, è possibile specificare tutte e tre le frequenze come intervallo di 11 a 44 kHz in una singola struttura KSDATARANGE_AUDIO . Questa tecnica ha il vantaggio di essere concisa. Un potenziale svantaggio è che un gestore di intersezione dati buggy potrebbe scegliere un valore di parametro non valido (ad esempio, 27 kHz) che rientra nell'intervallo. In questo caso, il driver dell'adattatore non ha alcuna opzione, ma non riesce la chiamata NewStream (ad esempio, vedere IMiniportWavePci::NewStream) che tenta di creare un pin con il formato non valido.
Un altro approccio consiste nel fornire un elenco di intervalli di dati in cui ogni intervallo di dati specifica un valore discreto anziché un intervallo di valori per ogni parametro. Ad esempio, anziché fornire un singolo intervallo di dati per specificare un intervallo di frequenze di esempio da 11 a 44 kHz, la matrice di intervalli di dati può contenere tre elementi separati per 11, 22 e 44 kHz. In ognuno di questi elementi, le frequenze massime e minime di esempio vengono impostate sullo stesso valore (11, 22 o 44 kHz). Il vantaggio di questo approccio è che elimina qualsiasi ambiguità sui valori precisi supportati. Inoltre, se si preferisce un valore discreto rispetto a un altro, l'intervallo di dati contenente questo valore può essere spostato in una posizione nella matrice che precede l'intervallo di dati contenente l'altro valore. Uno svantaggio minore dei valori discreti è che possono aumentare le dimensioni della matrice di intervallo di dati.