PFNKSPIN コールバック関数 (ks.h)
AVStream ミニドライバーのコールバック ルーチンは、次の場合に呼び出されます。
- KSPIN 構造で処理できるデータがあります。 このルーチンを使用して、Pin-Centric 処理を実行します。
- KSPIN がシンク ピンとして機能し、AVStream ソース ピンに接続されている関連する。
構文
PFNKSPIN Pfnkspin;
NTSTATUS Pfnkspin(
[in] PKSPIN Pin
)
{...}
パラメーター
[in] Pin
フレーム データを処理できる KSPIN へのポインター。
戻り値
処理を続行するには、STATUS_SUCCESSを返します。 次のトリガー イベントまで処理を停止するSTATUS_PENDINGを返します。
備考
AVStrMiniPinProcess について
ミニドライバーは、その KSPIN_DISPATCH 構造体のメンバー プロセスで、このルーチンのアドレスを指定します。
フィルターで、このディスパッチ関数を指定して Pin-Centric 処理 を使用することを示します。 ミニドライバーは、AVStream が AVStrMiniPinProcess 呼び出すタイミングを決定する関連する KSPIN_DESCRIPTOR_EX 構造体にピン フラグを設定します。 ミニドライバーが記述子にフラグを設定しない場合、既定の動作は、新しいデータが以前に空のキューに到着したときに AVStream が AVStrMiniPinProcess 呼び出します。 トリガーの処理の詳細については、「Pin-Centric 処理」を参照してください。
処理後、ミニドライバーは、先頭のエッジ ストリーム ポインターを複製することで、フレームが完了するのを防ぐことができます。 これを行うには、KsStreamPointerClone 呼び出します。 「先頭および末尾のエッジ ストリーム ポインターを参照してください。
または、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を返さないでください。
このルーチンは省略可能です。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Microsoft Windows XP 以降のオペレーティング システムと DirectX 8.0 以降の DirectX バージョンで使用できます。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | ks.h (Ks.h を含む) |
IRQL | (「解説」セクションを参照) |
関連項目
KsStreamPointerClone の