PFNKSPIN コールバック関数 (ks.h)

AVStream ミニドライバーのコールバック ルーチンは、次の場合に呼び出されます。

  • KSPIN 構造で処理できるデータがあります。 このルーチンを使用して 、ピン中心の処理を実行します。
  • 関連する KSPIN はシンク ピンとして機能し、AVStream ソース ピンに接続されています。

構文

PFNKSPIN Pfnkspin;

NTSTATUS Pfnkspin(
  [in] PKSPIN Pin
)
{...}

パラメーター

[in] Pin

処理できるフレーム データを持つ KSPIN へのポインター。

戻り値

処理を続行するには、STATUS_SUCCESSを返します。 次のトリガー イベントまで処理を停止するには、STATUS_PENDINGを返します。

注釈

AVStrMiniPinProcess について

ミニドライバーは、そのKSPIN_DISPATCH構造体の Process メンバーで、このルーチンのアドレスを指定します。

このディスパッチ関数を指定して、フィルターで ピン中心の処理 を使用することを示します。 ミニドライバーは、AVStream が AVStrMiniPinProcess を呼び出すタイミングを決定する関連するKSPIN_DESCRIPTOR_EX構造にピン フラグを設定します。 ミニドライバーが記述子にフラグを設定しない場合、既定の動作では、新しいデータが以前に空のキューに到着したときに AVStream によって AVStrMiniPinProcess が呼び出されます。 トリガーの処理の詳細については、「Pin-Centric 処理」を参照してください。

処理後、ミニドライバーは、先端のストリーム ポインターを複製することで、フレームが完了するのを防ぐことができます。 これを行うには、 KsStreamPointerClone を呼び出します。 「先頭と末尾のエッジ Stream ポインター」を参照してください。

または、KSPIN_DESCRIPTOR_EXにKSPIN_FLAG_DISTINCT_TRAILING_EDGEを設定して、 個別の末尾のエッジを指定します。 3 つ目のオプションは、先行エッジ ストリーム ポインターを進めないようにすることです。

プロセスディスパッチは、既定の IRQL = PASSIVE_LEVELで行われるか、ミニドライバーが関連するKSPIN_DESCRIPTOR_EXでKSPIN_FLAG_DISPATCH_LEVEL_PROCESSINGを指定した場合は DISPATCH_LEVELで行われます。

このルーチンは省略可能です。

AVStrMiniPinConnect について

ミニドライバーは、そのKSPIN_DISPATCH構造体の Connect メンバーで、このルーチンのアドレスを指定します。

STATUS_SUCCESSを返すか、接続内の確立の試行から返されたエラーを返します。 STATUS_PENDINGを返さないでください。

このルーチンは省略可能です。

KS ピンも参照してください。

要件

要件
サポートされている最小のクライアント Microsoft Windows XP 以降のオペレーティング システムと DirectX 8.0 以降の DirectX バージョンで使用できます。
対象プラットフォーム デスクトップ
Header ks.h (Ks.h を含む)
IRQL (「解説」セクションを参照)

こちらもご覧ください

フィルター中心の処理

KSPIN_DESCRIPTOR_EX

KSPIN_DISPATCH

KsStreamPointerClone

ピン中心の処理