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.
Un formato de datos es un único conjunto de parámetros que describen algún aspecto de una conexión. Por ejemplo, un formato de datos de audio podría especificar un determinado formato de audio en muestras X por segundo e Y bits por muestra.
Un intervalo de datos especifica una secuencia de parámetros válidos. Por ejemplo, un intervalo de datos de audio podría especificar un determinado formato de audio en muestras A-B por segundo y bits C-D por muestra.
El minidriver proporciona una lista de intervalos de datos que admite para un pin específico en el miembro DataRanges de la estructura KSPIN_DESCRIPTOR correspondiente.
En AVStream, los mini controladores pueden proporcionar sus propios manejadores de intersección de rangos de datos proporcionando un puntero a una rutina callback proporcionada por el mini controlador en el miembro IntersectHandler de un KSPIN_DESCRIPTOR_EX. Para permitir que AVStream intersecte los intervalos, establezca este miembro en NULL. Consulte AVStrMiniIntersectHandlerEx para obtener información sobre cómo definir la rutina de devolución de llamada.
Si un minidriver proporciona un controlador de intersección, cuando es necesario realizar una intersección, el minidriver recibe dos rangos de datos que coinciden en tipo principal, subformato y especificador. Además, los atributos necesarios de los intervalos de datos coinciden.
Si los intervalos se intersecan y se proporciona suficiente espacio de búfer en el parámetro Data de la rutina de llamada de retorno AVStrMiniIntersectHandlerEx, la rutina de intersección elige un formato en la intersección y lo devuelve al llamador en el búfer señalado por Data.
Si los dos intervalos de datos no se intersecan, el controlador devuelve STATUS_NO_MATCH.
Si el minidriver ha especificado un controlador de despacho AVStrMiniPinSetDataFormat, entonces AVStream llama a este controlador de despacho para informar al minidriver de que AVStream está estableciendo un formato específico en el pin. Proporcione un puntero a la rutina de devolución de llamada AVStrMiniPinSetDataFormat en el miembro SetDataFormat de la estructura KSPIN_DISPATCH. (Los minidrivers que son clientes de clase de flujo reciben SRB_SET_DATA_FORMAT en lugar de AVStrMiniPinSetDataFormat.)
El minidriver puede rechazar un formato propuesto devolviendo STATUS_NO_MATCH de AVStrMiniPinSetDataFormat.
Además de la llamada inicial a AVStrMiniPinSetDataFormat antes de crear el pin, el minidriver podría recibir una segunda llamada AVStrMiniPinSetDataFormat justo antes de que el pin pase al estado RUN. Si el cliente de clase avStream o stream es un minidriver de captura de vídeo y recibe dicha notificación, este envío contiene los parámetros de superficie reales. Si es posible, el minidriver no debe producir un error en este segundo cambio de formato. No suponga que se producirá una segunda llamada de envío.
El minidriver debe capturar datos en el formato que fue contenido en el último despacho exitoso de AVStrMiniPinSetDataFormat.