IKsInterfaceHandler インターフェイス (ksproxy.h)
IKsInterfaceHandler インターフェイスは、確立された接続に指定されたKSPIN_INTERFACE構造に基づいて、サンプルをカーネルにマーシャリングするメソッドを提供します。 このインターフェイスの IID はIID_IKsInterfaceHandler。
継承
IKsInterfaceHandler インターフェイスは、IUnknown インターフェイスから継承します。
メソッド
IKsInterfaceHandler インターフェイスには、これらのメソッドがあります。
IKsInterfaceHandler::KsCompleteIo KsCompleteIo メソッドは、拡張ヘッダーをクリーンアップし、入出力 (I/O) が完了した後にメディア サンプルを解放します。 |
IKsInterfaceHandler::KsProcessMediaSamples KsProcessMediaSamples メソッドは、メディア サンプルを処理します。 |
IKsInterfaceHandler::KsSetPin KsSetPin メソッドは、データを渡すときに通信するピンについてストリーミング インターフェイス ハンドラーに通知します。 |
注釈
データのストリーミングに使用されるインターフェイスに関してプロキシの中立性を維持するために、インターフェイス ハンドラーが読み込まれ、DirectShow メディア サンプルがカーネル レベルドライバーとの間で変換されます。 インターフェイス ハンドラーは 、IKsInterfaceHandler インターフェイスのメソッドを実装して、すべてのメディア サンプルで前処理と後処理を実行し、入力と出力の完了 (I/O) を通知します。
各インターフェイス ハンドラーは、独自のメソッドを使用してメディア サンプルをマーシャリングできます。 KS プロキシが実装する標準インターフェイス ハンドラーは、受信操作にIOCTL_KS_WRITE_STREAMを使用し、送信操作にIOCTL_KS_READ_STREAMしますが、カスタム インターフェイス ハンドラーでは他のメソッドを使用できます。
ピンが接続されている場合、プロキシは KSPIN_INTERFACE 構造体の Set メンバーの GUID を使用して、読み込むインターフェイス ハンドラーを決定します。 インターフェイス ハンドラーは、その GUID クラスの下に COM サーバーとして登録されます。 インターフェイス ハンドラーは、インターフェイス セット内のインターフェイスのすべてのバリエーションを処理する必要があります。 ブリッジ ピンはデータをストリーミングすることは想定されておらず、インターフェイス ハンドラーは読み込まれません。
CoCreateInstance を介したインターフェイス ハンドラー作成要求では、サーバーには、COM オブジェクトを作成するための外部 IUnknown が常に表示されます。 この IUnknown は、このインターフェイス ハンドラーを読み込む pin オブジェクト上のインターフェイスです。 IUnknown インターフェイス ポインターを使用すると、IKsControl インターフェイスなどの情報やインターフェイスをピンから照会できますが、カーネル モードのピンはインターフェイス ハンドラーの読み込み時に作成されていない可能性があります。 インターフェイスを取得して外部オブジェクトに参照を残す必要はありません。これにより、循環参照カウントが発生します。 外部オブジェクトがハンドラーを所有し、定義上、外部オブジェクトの参照カウントが 0 に達すると破棄されるため、参照カウントなしでインターフェイスを使用することは許容されます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | ksproxy.h |