Диапазоны данных с дискретными значениями

Если звуковое устройство поддерживает выборку частот 11, 22 и 44 кГц, например, можно указать все три частоты в диапазоне от 11 до 44 кГц в одной KSDATARANGE_AUDIO структуре. Этот метод имеет преимущество быть кратким. Потенциальный недостаток заключается в том, что обработчик пересечения данных может выбрать недопустимое значение параметра (например, 27 кГц), которое соответствует допустимому диапазону. В этом случае драйвер адаптера не имеет возможности, кроме сбоя вызова NewStream (например, см. раздел IMiniportWavePci::NewStream), который пытается создать пин-код с недопустимым форматом.

Другой подход заключается в предоставлении списка диапазонов данных, в которых каждый диапазон данных задает дискретное значение, а не диапазон значений для каждого параметра. Например, вместо предоставления одного диапазона данных для указания диапазона выборок частот от 11 до 44 кГц массив диапазонов данных может содержать три отдельных элемента для 11, 22 и 44 кГц. В каждом из этих элементов максимальный и минимальный частоты выборки задаются одинаковое значение (11, 22 или 44 кГц). Преимущество этого подхода заключается в том, что он устраняет неоднозначность в отношении точных значений, поддерживаемых. Кроме того, если одно дискретное значение предпочтительнее другого, диапазон данных, содержащий это значение, можно переместить в положение в массиве, который впереди диапазона данных, содержащего другое значение. Незначительным недостатком дискретных значений является то, что они могут увеличить размер массива диапазона данных.