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 | (「解説」セクションを参照) |