KsPinGetConnectedFilterInterface 関数 (ks.h)

KsPinGetConnectedFilterInterface 関数は、COM インターフェイスへのポインターを取得するために、Pin が接続されているフィルターに対してクエリを実行します。

構文

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

パラメーター

[in] Pin

KSPIN 構造体へのポインター。 このピンが接続されているフィルターは、要求されたインターフェイスに対して照会されます。

[in] InterfaceId

取得するインターフェイスのインターフェイス ID を表す GUID へのポインター。 QueryInterface 呼び出しは、このインターフェイスに対して自動的に実行されます。

[out] Interface

PVOID へのポインター。 COM と同様に、結果のインターフェイス ポインターは *Interface に格納されます。 このインターフェイスには対応する参照カウントがあり、COM のように呼び出し元によって解放される 必要があります

戻り値

接続されたフィルターまたは AVStream サンクにインターフェイスが存在する場合、KsPinGetConnectedFilterInterface はSTATUS_SUCCESSを返します。 STATUS_SUCCESSが返された場合、インターフェイス ポインターは *Interface にデポジットされます。 それ以外の場合は、STATUS_NOINTERFACEを返します。 これは COM HRESULT E_NOINTERFACEに対応しています。

注釈

既定では、オブジェクトは IUnknown インターフェイスと IKsControl インターフェイスをサポートします。 フィルターと接続されたピンが AVStream オブジェクトの場合、クエリと返されるインターフェイス ポインターは、他のドライバーへの直接呼び出しです。 ただし、接続されたピンとフィルターが AVStream ドライバーに属していない場合は、 IoCallDriver を使用して、フィルターを含むドライバーへの同期呼び出しを介して IKsControl のサポートを提供するサンクが作成されます。

KsPinGetConnectedFilterInterface の最も一般的な使用法は、Pin がアタッチされるフィルターのコントロール インターフェイスを取得することです。 このコントロール インターフェイスは、接続されたピンまでのプロパティ、メソッド、またはイベント呼び出しに使用することも、接続されたフィルターに集計されたインターフェイスを照会することもできます。 (接続されたフィルターが AVStream フィルターの場合)。AVStream では、 IKsControl に対してのみサンキングが提供され、AVStream 以外のフィルターの場合 は IUnknown のみが提供されます。

サンクは、Pin がソース ピン の場合にのみ作成されます。したがって、呼び出しは、次の 1 つ以上が該当する場合にのみ機能します。

  • 接続は AVStream 内です (ピンの接続ピンは AVStream ピンです)。
  • Pin はソース ピンです。
それ以外の場合は、STATUS_UNSUCCESSFULが返されます。

要件

要件
サポートされている最小のクライアント Microsoft Windows XP 以降のオペレーティング システムおよび DirectX 8.0 以降の DirectX バージョンで使用できます。
対象プラットフォーム ユニバーサル
Header ks.h (Ks.h を含む)
Library Ks.lib
IRQL PASSIVE_LEVEL

こちらもご覧ください

IKsControl

IKsReferenceClock

KsFilterGetOuterUnknown

KsGetOuterUnknown

KsPinGetConnectedPinInterface

KsPinGetReferenceClockInterface

KsRegisterAggregatedClientUnknown