AVStream でのミューテックスの処理
3 番目のミューテックスは、処理ミューテックスです。 個々のフィルターとピンには、独自の処理ミューテックスがあります。 AVStream は、処理に関連する構造体へのアクセスを同期するために、フィルターおよびピン レベルで処理する前に、処理ミューテックスを個別に取得します。 AVStream は、パイプ セクションへのピンのバインド、スリープまたはスリープ解除の電源操作、記述子の変更など、他の操作中に処理ミューテックスも取得します。 ミニドライバーは、処理や記述子の変更など、同期操作を実行するミューテックスを手動で取得できます。 ミニドライバーは、処理と同時に行うことができない変更を行う前に、処理ミューテックスを取得する必要があります。
他の 2 種類のミューテックスと同様に、ミューテックスの処理は繰り返し取得されません。 つまり、ミニドライバーが処理中に処理ミューテックスを取得しようとすると、デッドロックが発生します。
処理ミューテックスを使用して長時間処理を中断しないでください。 代わりに、KSGATEXxx 関数を使用して、処理制御ゲートを直接操作します。
処理ミューテックスを取得したスレッドは、後でフィルター制御ミューテックスの取得を試みてはいけません。。
処理ミューテックスを操作するには、次の関数を使用します。
KsFilterAcquireProcessingMutex, KsPinAcquireProcessingMutex, KsFilterReleaseProcessingMutex, KsPinReleaseProcessingMutex