Función KsPinGetConnectedFilterInterface (ks.h)

La función KsPinGetConnectedFilterInterface consulta el filtro al que está conectado Pin para obtener un puntero a una interfaz COM.

Sintaxis

KSDDKAPI NTSTATUS KsPinGetConnectedFilterInterface(
  [in]  PKSPIN     Pin,
  [in]  const GUID *InterfaceId,
  [out] PVOID      *Interface
);

Parámetros

[in] Pin

Puntero a una estructura KSPIN . El filtro al que se adjunta este pin se consulta para la interfaz solicitada.

[in] InterfaceId

Puntero a un GUID que representa el identificador de interfaz para la interfaz que se va a obtener. Se realiza automáticamente una llamada QueryInterface para esta interfaz.

[out] Interface

Puntero a un PVOID. Como en COM, el puntero de interfaz resultante se deposita en *Interface. Esta interfaz tiene un recuento de referencias correspondiente y el autor de la llamada debe liberarlo como en COM.

Valor devuelto

KsPinGetConnectedFilterInterface devuelve STATUS_SUCCESS si la interfaz existe en el filtro conectado o en el thunk de AVStream. Si se devuelve STATUS_SUCCESS, el puntero de interfaz se deposita en *Interface. De lo contrario, devuelve STATUS_NOINTERFACE. Tenga en cuenta que esto corresponde al E_NOINTERFACE HRESULT COM.

Comentarios

De forma predeterminada, los objetos admiten la interfaz IUnknown y la interfaz IKsControl . Si el filtro y la patilla conectada son objetos AVStream, la consulta y el puntero de interfaz devuelto son llamadas directas al otro controlador. Sin embargo, si el pin y el filtro conectados no pertenecen a un controlador AVStream, se crea un thunk que proporciona compatibilidad con IKsControl a través de llamadas sincrónicas al controlador que contiene el filtro, mediante IoCallDriver.

El uso más común de KsPinGetConnectedFilterInterface es adquirir la interfaz de control para el filtro al que se adjunta Pin . A continuación, esta interfaz de control se puede usar para las llamadas de propiedad, método o evento al pin conectado, o puede consultar las interfaces que se han agregado al filtro conectado. (Si el filtro conectado es un filtro AVStream; AVStream solo proporciona matones para IKsControl e IUnknown para filtros que no son AVStream).

El thunk solo se crea si Pin es un pin de origen; por lo tanto, las llamadas solo funcionan si se cumple una o varias de las siguientes condiciones:

  • La conexión es intra-AVStream (el pin conectado de Pin es un pin avStream).
  • Pin es un pin de origen.
De lo contrario, se devuelve STATUS_UNSUCCESSFUL.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Microsoft Windows XP y en sistemas operativos posteriores y DirectX 8.0 y versiones posteriores de DirectX.
Plataforma de destino Universal
Encabezado ks.h (incluye Ks.h)
Library Ks.lib
IRQL PASSIVE_LEVEL

Consulte también

IKsControl

IKsReferenceClock

KsFilterGetOuterUnknown

KsGetOuterUnknown

KsPinGetConnectedPinInterface

KsPinGetReferenceClockInterface

KsRegisterAggregatedClientUnknown