Compatibilidad con una mezcla de patillas 2D y 3D
Si el controlador de audio WDM admite una mezcla de patillas 2D y 3D, un pin 3D puede duplicarse para su uso como pin 2D, pero no viceversa. Cuando DirectSound requiere un pin 2D, puede sustituir un pin 3D sin usar para ese propósito, si hay uno disponible en el controlador. Sin embargo, si DirectSound requiere un pin 3D, continúa buscando la lista de instancias de patillas del controlador hasta que encuentre un pin 3D, omidiendo los patillas 2D encontradas durante la búsqueda. DirectSound comprueba la lista de generadores de patillas del controlador en el orden en que se muestran hasta que encuentra una instancia de patilla que cumple sus requisitos.
Al notificar el número de patillas 2D, el controlador debe especificar el número de instancias de 2D-pin más el número de instancias de 3D-pin. Al notificar el recuento de patillas 3D, el controlador debe omitir las patillas 2D y especificar solo el número de instancias de 3D-pin.
Las versiones de DirectSound distribuidas con Microsoft Windows 2000 y Windows 98 tienen un problema conocido al tratar con un generador de patillas que expone una mezcla de 2D y 3D pins: DirectSound informa incorrectamente del recuento de patillas 3D para ser el número de instancias de patillas 2D más el número de instancias de patillas 3D. Una solución alternativa a este problema es escribir el controlador para que se segregan las patillas 2D y 3D en dos generadores de patillas independientes. Una fábrica expone solo los pines 2D y el otro expone solo los pines 3D.
Con los controladores WDM, DirectSound informa correctamente del recuento de patillas 2D como la suma de los recuentos de los pines 2D y 3D de las dos fábricas, y notifica correctamente el recuento de patillas 3D como el número de patillas 3D de la fábrica de 3D pin. Al exponer fábricas independientes para patillas 2D y 3D, el controlador debe enumerar la fábrica de patillas 2D antes de la fábrica de patillas 3D. Esto es necesario porque cuando DirectSound busca un pin 2D, usa el primer pin 2D o 3D que encuentra, y DirectSound comprueba las fábricas de patillas en el orden en que el controlador los enumera. Si el controlador muestra primero la fábrica 3D, corre el riesgo de que DirectSound agote el suministro de patillas 3D mediante su uso innecesario en lugar de patillas 2D.
En resumen, si el controlador expone una mezcla de patillas 2D y 3D, debe seguir estas reglas para ejecutarse correctamente en versiones anteriores de DirectSound:
Proporcione dos generadores de patillas independientes para los pines 2D y 3D, respectivamente.
Enumere la fábrica de patillas 2D delante de la fábrica de patillas 3D.
Estas soluciones alternativas no son necesarias con versiones posteriores de DirectSound. El problema descrito anteriormente se ha corregido en Windows Me y en Windows XP y versiones posteriores. También se ha corregido en DirectSound 8, que se redistribuye para su uso con versiones anteriores de Windows. Con esta corrección, el controlador puede combinar de forma segura patillas 2D y 3D en un único generador de patillas y DirectSound notificará correctamente los recuentos de patillas 2D y 3D. Además, cuando DirectSound requiere un pin 2D, usa un pin 3D en lugar de un pin 2D solo cuando ha agotado el suministro de patillas 2D de todos los generadores de patillas.