Freigeben über


KsPinGetConnectedFilterInterface-Funktion (ks.h)

Die KsPinGetConnectedFilterInterface-Funktion fragt den Filter ab, mit dem Pin- verbunden ist, um einen Zeiger auf eine COM-Schnittstelle abzurufen.

Syntax

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

Parameter

[in] Pin

Ein Zeiger auf eine KSPIN--Struktur. Der Filter, an den dieser Pin angefügt ist, wird für die angeforderte Schnittstelle abgefragt.

[in] InterfaceId

Ein Zeiger auf eine GUID, die die Schnittstellen-ID für die abzurufende Schnittstelle darstellt. Für diese Schnittstelle wird automatisch ein QueryInterface-aufruf ausgeführt.

[out] Interface

Ein Zeiger auf ein PVOID. Wie in COM wird der resultierende Schnittstellenzeiger in *Interfaceabgelegt. Diese Schnittstelle verfügt über eine entsprechende Referenzanzahl, und müssen vom Aufrufer wie in COM freigegeben werden.

Rückgabewert

KsPinGetConnectedFilterInterface gibt STATUS_SUCCESS zurück, wenn die Schnittstelle im verbundenen Filter oder im AVStream thunk vorhanden ist. Wenn STATUS_SUCCESS zurückgegeben wird, wird der Schnittstellenzeiger in *Interfaceabgelegt. Andernfalls wird STATUS_NOINTERFACE zurückgegeben. Beachten Sie, dass dies dem COM-HRESULT-E_NOINTERFACE entspricht.

Bemerkungen

Standardmäßig unterstützen Objekte die IUnknown--Schnittstelle und die IKsControl--Schnittstelle. Wenn der Filter und der verbundene Pin AVStream-Objekte sind, sind die Abfrage und der zurückgegebene Schnittstellenzeiger direkte Aufrufe an den anderen Treiber. Wenn der verbundene Pin und Filter jedoch nicht zu einem AVStream-Treiber gehören, wird ein Thunk erstellt, der IKsControl-Unterstützung über synchrone Aufrufe des Treibers mit dem Filter bereitstellt, wobei IoCallDriververwendet wird.

Die am häufigsten verwendete Verwendung von KsPinGetConnectedFilterInterface- besteht darin, die Steuerungsschnittstelle für den Filter zu erhalten, an den Anheften angefügt wird. Diese Steuerelementschnittstelle kann dann für Eigenschafts-, Methoden- oder Ereignisaufrufe an den verbundenen Pin verwendet werden, oder sie können Schnittstellen abfragen, die auf dem verbundenen Filter aggregiert wurden. (Wenn der verbundene Filter ein AVStream-Filter ist; AVStream bietet Thunking nur für IKsControl- und IUnknown- für Nicht-AVStream-Filter).

Die Thunk wird nur erstellt, wenn Pin eine Quellnadel ist; Die Aufrufe funktionieren daher nur, wenn eine oder mehrere der folgenden Werte zutreffen:

  • Die Verbindung ist intra-AVStream (Pinangeschlossenen Pin ist ein AVStream-Pin).
  • Pin ist eine Quellnadel.
Andernfalls wird STATUS_UNSUCCESSFUL zurückgegeben.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Microsoft Windows XP und höheren Betriebssystemen und DirectX 8.0 und höher directX-Versionen.
Zielplattform- Universal
Header- ks.h (enthalten Ks.h)
Library Ks.lib
IRQL- PASSIVE_LEVEL

Siehe auch

IKsControl-

IKsReferenceClock

KsFilterGetOuterUnknown

KsGetOuterUnknown-

KsPinGetConnectedPinInterface

KsPinGetReferenceClockInterface

KsRegisterAggregatedClientUnknown