Plages de données avec des valeurs discrètes

Si votre appareil audio prend en charge des exemples de fréquences de 11, 22 et 44 kHz, par exemple, vous pouvez spécifier les trois fréquences sous la forme d’une plage de 11 à 44 kHz dans une structure KSDATARANGE_AUDIO unique. Cette technique a l’avantage d’être concise. Un inconvénient potentiel est qu’un gestionnaire d’intersection de données buggy peut choisir une valeur de paramètre non valide (par exemple, 27 kHz) qui se trouve dans la plage. Dans ce cas, le pilote d’adaptateur n’a pas d’autre option que d’échouer l’appel NewStream (par exemple, consultez IMiniportWavePci::NewStream) qui tente de créer une broche au format non valide.

Une autre approche consiste à fournir une liste de plages de données dans lesquelles chaque plage de données spécifie une valeur discrète plutôt qu’une plage de valeurs pour chaque paramètre. Par exemple, au lieu de fournir une seule plage de données pour spécifier une plage de fréquences d’échantillons comprises entre 11 et 44 kHz, le tableau de plages de données peut contenir trois éléments distincts pour 11, 22 et 44 kHz. Dans chacun de ces éléments, les fréquences d’échantillonnage maximale et minimale sont définies sur la même valeur (11, 22 ou 44 kHz). L’avantage de cette approche est qu’elle élimine toute ambiguïté sur les valeurs précises prises en charge. En outre, si une valeur discrète est préférée à une autre, la plage de données contenant cette valeur peut être déplacée vers une position dans le tableau qui est en avance sur la plage de données contenant l’autre valeur. Un inconvénient mineur des valeurs discrètes est qu’elles peuvent augmenter la taille du tableau de plages de données.