Función de devolución de llamada PFNKSPINSETDATAFORMAT (ks.h)

Se llama a una rutina AVStrMiniPinSetDataFormat de AVStream minidriver en tiempo de creación de patillas para comprobar que el formato de datos acordado previamente es aceptable para esta estructura KSPIN y una coincidencia para esta estructura KSDATARANGE . También se llama a esta rutina debido a determinados tipos de cambios de formato dinámico, por ejemplo, la aceptación de una solicitud de propiedad KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT .

Sintaxis

PFNKSPINSETDATAFORMAT Pfnkspinsetdataformat;

NTSTATUS Pfnkspinsetdataformat(
  [in]           PKSPIN Pin,
  [in, optional] PKSDATAFORMAT OldFormat,
  [in, optional] PKSMULTIPLE_ITEM OldAttributeList,
  [in]           const KSDATARANGE *DataRange,
  [in, optional] const KSATTRIBUTE_LIST *AttributeRange
)
{...}

Parámetros

[in] Pin

Puntero a la estructura KSPIN para la que cambia el formato de datos.

[in, optional] OldFormat

Opcional. Puntero a una estructura KSDATAFORMAT . Los minidrivers pueden usar este campo para determinar el formato de datos que el pin estaba usando antes de esta llamada. Si es NULL, indica que no se ha establecido ningún formato de datos para el pin y que aún no se ha realizado el envío de creación del Pin . Un valor NULL aquí indica que se llamó a esta rutina en el momento de la inicialización para la comprobación de formato.

[in, optional] OldAttributeList

Opcional. Puntero a una estructura de KSMULTIPLE_ITEM que almacena atributos para el formato anterior.

[in] DataRange

Puntero a una estructura KSDATARANGE . Intervalo de datos para el nuevo formato.

[in, optional] AttributeRange

Opcional. Intervalo de atributos para el nuevo formato.

Valor devuelto

Devuelve STATUS_SUCCESS si el miembro ConnectionFormat del Pin coincide con el intervalo que se pasó a esta rutina. Devuelve STATUS_NO_MATCH si ConnectionFormat no coincide con el intervalo pasado y el minidriver desea continuar intentando encontrar una coincidencia con otro intervalo. Devuelve un código de error de elección si ConnectionFormat no coincide con el intervalo pasado y el minidriver no desea continuar intentando encontrar una coincidencia con otro intervalo. No devuelva STATUS_PENDING.

Comentarios

En un gráfico de anillo 3, el módulo Proxy de streaming de kernel (KsProxy) establece el formato de datos en función del formato de conexión acordado o un cambio de formato dinámico. KsProxy emite una solicitud de KSPROPERTY_CONNECTION_DATAFORMAT que, después de alguna validación inicial, se traduce en esta llamada de envío al minidriver. Consulte Kernel Streaming Proxy (Proxy de streaming de kernel). Para obtener más información, vea KS Data Formats and Data Ranges andDataRange Intersecciones en AVStream.

El minidriver especifica la dirección de AVStrMiniPinSetDataFormat en el miembro SetDataFormat de su estructura de KSPIN_DISPATCH .

Se puede llamar a esta rutina antes de que el pin reciba una IRP_MJ_CREATE, y los minidrivers deben estar preparados para tratar esta situación.

OldFormat, OldAttributeList y AttributeRange son todos los parámetros opcionales y pueden ser NULL.

Esta rutina es opcional.

Requisitos

   
Cliente mínimo compatible Disponible en Microsoft Windows XP y sistemas operativos posteriores y DirectX 8.0 y versiones posteriores de DirectX.
Plataforma de destino Escritorio
Header ks.h (incluya Ks.h)
IRQL PASSIVE_LEVEL

Consulte también

IRP_MJ_CREATE

KSDATAFORMAT

KSDATARANGE

KSMULTIPLE_ITEM

KSPIN

KSPIN_DISPATCH