Partager via


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 seule structure de KSDATARANGE_AUDIO . 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 de l’adaptateur n’a pas d’autre choix que d’échouer l’appel NewStream (par exemple, voir IMiniportWavePci::NewStream) qui tente de créer un point de connexion avec le 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 plage de données unique pour spécifier une plage d’échantillons de fréquences 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 maximales et minimales d’échantillon 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é quant aux 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 à l’avance de 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.