Prise en charge d’un mélange de broches 2D et 3D

Si votre pilote audio WDM prend en charge un mélange de broches 2D et 3D, une broche 3D peut être utilisée en tant que broche 2D, mais pas inversement. Lorsque DirectSound nécessite une broche 2D, il peut remplacer une broche 3D inutilisée à cet effet, si elle est disponible à partir du pilote. Toutefois, si DirectSound nécessite une broche 3D, il continue à rechercher dans la liste des instances de broche du pilote jusqu’à ce qu’il trouve une broche 3D, en ignorant les broches 2D rencontrées pendant la recherche. DirectSound vérifie la liste des fabriques de broches du pilote dans l’ordre dans lequel elles sont répertoriées jusqu’à ce qu’il trouve une broche instance qui répond à ses exigences.

Lorsque vous signalez le nombre de broches 2D, votre pilote doit spécifier le nombre d’instances 2D-pin plus le nombre d’instances 3D-pin. Lorsque vous signalez le nombre de broches 3D, votre pilote doit ignorer les broches 2D et spécifier uniquement le nombre d’instances de broche 3D.

Les versions DirectSound qui ont été distribuées avec Microsoft Windows 2000 et Windows 98 présentent un problème connu lors de la gestion d’une fabrique de broches qui expose un mélange de broches 2D et 3D : DirectSound signale incorrectement le nombre de broches 3D comme étant le nombre d’instances de broche 2D plus le nombre d’instances de broche 3D. Une solution de contournement à ce problème consiste à écrire votre pilote afin qu’il sépare les broches 2D et 3D en deux fabriques de broches distinctes. Une fabrique expose uniquement les broches 2D, et l’autre fabrique expose uniquement les broches 3D.

Avec les pilotes WDM, DirectSound signale correctement le nombre de broches 2D comme la somme des nombres de broches 2D et 3D des deux fabriques, et indique correctement le nombre de broches 3D en tant que nombre de broches 3D de la fabrique 3D. Lorsque vous exposez des fabriques distinctes pour les broches 2D et 3D, votre pilote doit répertorier la fabrique de broches 2D avant la fabrique de broches 3D. Cela est nécessaire, car lorsque DirectSound recherche une broche 2D, il utilise la première broche 2D ou 3D qu’il trouve, et DirectSound vérifie les fabriques de broches dans l’ordre dans lequel le pilote les répertorie. Si le pilote répertorie d’abord la fabrique 3D, directSound risque d’épuiser l’offre de broches 3D en les utilisant inutilement à la place des broches 2D.

En résumé, si votre pilote expose un mélange de broches 2D et 3D, il doit suivre ces règles pour s’exécuter correctement sur les versions antérieures de DirectSound :

  • Fournissez deux fabriques de broches distinctes pour les broches 2D et 3D, respectivement.

  • Répertoriez la fabrique de broches 2D avant la fabrique de broches 3D.

Ces solutions de contournement ne sont pas nécessaires avec les versions ultérieures de DirectSound. Le problème décrit ci-dessus est résolu dans Windows Me et Windows XP et versions ultérieures. Il est également résolu dans DirectSound 8, qui est redistribué pour une utilisation avec les versions antérieures de Windows. Avec ce correctif, votre pilote peut combiner en toute sécurité des broches 2D et 3D dans une fabrique de broches unique et DirectSound signale correctement le nombre de broches 2D et 3D. En outre, lorsque DirectSound nécessite une broche 2D, il utilise une broche 3D à la place d’une broche 2D uniquement lorsqu’il a épuisé l’offre de broches 2D de toutes les fabriques de broches.