KsPinAttemptProcessing 関数 (ks.h)
KsPinAttemptProcessing 関数は、ピン中心のフィルター上の特定のピンでの処理を再開するために使用されます。 Pin の処理オブジェクトに処理ディスパッチ呼び出しを送信して、Pin での処理を開始しようとします。
構文
void KsPinAttemptProcessing(
[in] PKSPIN Pin,
[in] BOOLEAN Asynchronous
);
パラメーター
[in] Pin
処理を試行する AVStream ピン オブジェクトを表す KSPIN 構造体へのポインター。
警告
このパラメーターは必須です。 Pin 値が NULL の KsPinAttemptProcessing を呼び出すと、システムが不安定になる可能性があります。
[in] Asynchronous
このパラメーターは、処理を同期的に行うか非同期的に行うかのミニドライバーの優先順位を示します。 TRUE の場合、処理は常に非同期です。 ただし、同期処理は特定の状況でのみ行われます。 詳細については、以下の「解説」セクションを参照してください。
戻り値
なし
解説
ミニドライバーは、さまざまな状況で処理を再開するために KsPinAttemptProcessing を呼び出す必要がある場合があります。 たとえば、クライアントが KsGateTurnInputOff を使用して処理制御ゲートをシャットダウンした場合、処理を試みる準備ができたら、この関数を呼び出します。 これは、プロセス制御ゲートが開いている状態の場合にのみ処理ディスパッチが発生します。 もう 1 つの状況として、ミニドライバーが以前に処理ディスパッチにSTATUS_PENDINGを返したことがあります。 詳細については、「 AVStream での処理の再開 」および「 AVStream のフロー制御ゲート」を参照してください。
処理ディスパッチは、処理制御ゲートが開いている場合 にのみ 、同期的または非同期的に行われます。 非同期フラグは、ミニドライバーの基本設定を指定します。 ミニドライバーが非同期プロセス ディスパッチを要求する場合、ディスパッチは常に非同期です。 ただし、呼び出し元が 非同期 を FALSE に設定した場合でも、システムが現在 IRQL で実行されている場合は、最大処理 IRQL より小さい場合にのみ同期ディスパッチが発生します。 つまり、ミニドライバーがディスパッチ レベルの処理を指定せず、IRQL = DISPATCH_LEVELで呼び出しが行われた場合、非同期の値に関係なく、PASSIVE_LEVELの非同期作業項目で呼び出しが行われます。 詳細については、「 フィルター中心の処理 」と 「ピン中心の処理」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | ks.h (Ks.h を含む) |
Library | Ks.lib |
IRQL | <=DISPATCH_LEVEL (「解説」を参照) |