Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El controlador de intersección de datos propietario de un adaptador (el método IMiniport::D ataRangeIntersection del objeto del controlador de miniporte) puede rechazar la comprobación de intersección de datos devolviendo el código de estado de STATUS_NOT_IMPLEMENTED. En este caso, el controlador de intersección de datos predeterminado del controlador de puerto realiza la comprobación en nombre del adaptador.
Puede implementar un controlador de intersección de datos mínimo para el controlador del adaptador como un método DataRangeIntersection que rechace todas las solicitudes de intersección de datos devolviendo STATUS_NOT_IMPLEMENTED.
La implementación actual del controlador predeterminado del puerto está limitada en los tipos de rangos de datos que puede manejar.
Solo formatos de datos PCM
Solo secuencias de audio mono y estéreo
Un controlador de adaptador que admita formatos que no sean PCM o multicanal debe implementar un controlador de intersección de datos propietario en lugar de confiar en el controlador de puerto para controlar las intersecciones de datos para estos formatos.
Además, el controlador predeterminado solo admite formatos de audio que se pueden especificar mediante una estructura KSDATAFORMAT_DSOUND o KSDATAFORMAT_WAVEFORMATEX . No admite ningún formato que contenga una estructura WAVEFORMATEXTENSIBLE , que es necesaria, por ejemplo, para especificar la máscara de canal para un formato con más de dos canales.
Al elegir un formato común de la intersección entre dos intervalos de datos, el controlador predeterminado del puerto siempre selecciona el valor más alto en la región de intersección de cada parámetro.
Si la intersección abarca más de una frecuencia de muestra válida (11, 22 y 44 kHz, por ejemplo), el controlador predeterminado elige la frecuencia más alta.
Si la intersección abarca más de un valor válido de bits por muestra (8, 16 y 32 bits, por ejemplo), el controlador predeterminado elige el valor más grande.
Si la intersección abarca formatos mono y estéreo, el controlador predeterminado selecciona estéreo.
Si el controlador predeterminado selecciona un formato que no es satisfactorio, el adaptador tiene la opción de rechazarlo fallando en la llamada a NewStream (por ejemplo, vea IMiniportWavePci::NewStream) cuando SysAudio intenta crear una clavija de destino con el formato. Si se produce un error en la llamada, SysAudio no seguirá buscando intersecciones de datos. En su lugar, intentará crear una conexión iterando a través de una lista de los formatos PCM que son compatibles con filtros del sistema, como KMixer, hasta que encuentre uno que el pin receptor del adaptador también pueda admitir. La lista se ordena primero con formatos de mayor calidad. Como antes, el adaptador rechaza los formatos no satisfactorios en la lista mediante un error en las llamadas de NewStream para esos formatos.