Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Trzeci mutex to mutex przetwarzania. Poszczególne filtry i pinezki mają własne mutexy przetwarzania. AVStream niezależnie uzyskuje mutex przetwarzania przed przetworzeniem na poziomie filtra i pinu, aby zsynchronizować dostęp do struktur związanych z przetwarzaniem. AvStream uzyskuje również mutex przetwarzania podczas innych operacji, w tym powiązania wyprowadzeń do sekcji potoku, operacji uśpienia lub wznawiania zasilania oraz zmienia deskryptory. Minidrajwery mogą ręcznie pozyskać mutex, aby przeprowadzić operację synchroniczną, taką jak przetwarzanie lub modyfikacja deskryptora. Minidriver powinien uzyskać mutex przetwarzania przed dokonaniem żadnych zmian, które nie mogą wystąpić w tym samym czasie co przetwarzanie.
Podobnie jak w przypadku pozostałych dwóch typów muteksów przetwarzanie muteksów nie jest uzyskiwane rekursywnie. Oznacza to, że jeśli minidriver próbuje chwycić mutex przetwarzania podczas przetwarzania, wystąpi impas.
Nie należy używać mutexu przetwarzania do wstrzymywania przetwarzania przez długi czas. Zamiast tego należy manipulować bramą sterowania przetwarzania bezpośrednio przy użyciu funkcji KSGATEXxx .
Wątek, który nabył mutex przetwarzania, nie powinien następnie podejmować próby uzyskania mutexu kontrolki filtru.
Aby manipulować mutexem przetwarzania, użyj następujących funkcji:
KsFilterAcquireProcessingMutex, KsPinAcquireProcessingMutex, KsFilterReleaseProcessingMutex, KsPinReleaseProcessingMutex