KsPinGetConnectedFilterInterface-Funktion (ks.h)

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

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 nach der angeforderten 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 eine PVOID. Wie bei COM wird der resultierende Schnittstellenzeiger in *Interface abgelegt. Diese Schnittstelle verfügt über eine entsprechende Verweisanzahl und muss 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 *Interface abgelegt. Andernfalls wird STATUS_NOINTERFACE zurückgegeben. Beachten Sie, dass dies dem COM HRESULT-E_NOINTERFACE entspricht.

Hinweise

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 der Filter jedoch nicht zu einem AVStream-Treiber gehören, wird ein Thunk erstellt, der IKsControl-Unterstützung durch synchrone Aufrufe des Treibers mit dem Filter mithilfe von IoCallDriver bereitstellt.

Die häufigste Verwendung von KsPinGetConnectedFilterInterface besteht darin, die Steuerungsschnittstelle für den Filter abzurufen, an den Pin angefügt wird. Diese Steuerungsschnittstelle kann dann für Eigenschafts-, Methoden- oder Ereignisaufrufe bis hinunter zum verbundenen Pin verwendet werden, oder kann Schnittstellen abfragen, die im verbundenen Filter aggregiert wurden. (Wenn der verbundene Filter ein AVStream-Filter ist; AVStream bietet Thunking nur für IKsControl und IUnknown für Filter ohne AVStream).

Das Thunk wird nur erstellt, wenn Pin eine Quell-Pin ist. Daher funktionieren die Aufrufe nur, wenn mindestens einer der folgenden Punkte zutrifft:

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Microsoft Windows XP und höheren Betriebssystemen sowie DirectX 8.0 und höher DirectX-Versionen.
Zielplattform Universell
Header ks.h (ks.h einschließen)
Bibliothek Ks.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

IKsControl

IKsReferenceClock

KsFilterGetOuterUnknown

KsGetOuterUnknown

KsPinGetConnectedPinInterface

KsPinGetReferenceClockInterface

KsRegisterAggregatedClientUnknown