Función KsPinGetConnectedPinInterface (ks.h)

La función KsPinGetConnectedPinInterface consulta el pin al que está conectado pin para una interfaz de estilo COM.

Sintaxis

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

Parámetros

[in] Pin

Puntero a una estructura KSPIN . AVStream consulta el pin conectado a Pin para la interfaz solicitada.

[in] InterfaceId

Puntero al GUID que especifica el tipo de interfaz que se va a obtener. Se realiza automáticamente una llamada QueryInterface para esta interfaz.

[out] Interface

Puntero a un puntero que AVStream establece en la ubicación de la interfaz COM.

Valor devuelto

KsPinGetConnectedPinInterface devuelve STATUS_SUCCESS o STATUS_NOINTERFACE. Vea los detalles a continuación.

Comentarios

La interfaz tiene un recuento de referencias correspondiente y el autor de la llamada debe liberarlo como en COM.

Esta rutina devuelve STATUS_SUCCESS si la interfaz existe en el pin conectado o en el matón AVStream. Si se devuelve STATUS_SUCCESS, AVStream deposita el puntero de interfaz en *Interface. De lo contrario, la rutina devuelve STATUS_NOINTERFACE. Esto corresponde al E_NOINTERFACE HRESULT COM.

De forma predeterminada, los objetos admiten la interfaz IUnknown y la interfaz IKsControl . Si el pin conectado es un pin avStream, la consulta y el puntero de interfaz devuelto son llamadas directas al otro controlador. Si, por otro lado, el pin conectado no pertenece 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 pin conectado, mediante IoCallDriver.

El uso más común de KsPinGetConnectedPinInterface es adquirir la interfaz de control para el pin conectado. Esta interfaz de control se puede usar para las llamadas de propiedad, método o evento a la patilla conectada o puede consultar las interfaces que se han agregado al pin conectado. Si el pin conectado es un pin AVStream; AVStream solo proporciona matones para IKsControl e IUnknown para patillas 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

KsPinGetConnectedFilterInterface

KsPinGetReferenceClockInterface

KsRegisterAggregatedClientUnknown