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