在 AVStream 中处理互斥

第三个互斥体是处理互斥体。 单个筛选器和引脚都有自己的处理互斥体。 AVStream 在筛选器和引脚级别处理之前独立获取处理互斥体,以便同步对处理相关结构的访问。 AVStream 还会在其他操作(包括将引脚绑定到管道部分、睡眠或唤醒电源操作以及更改描述符)期间获取处理互斥体。 微型驱动程序可以手动获取互斥体以执行同步操作,例如处理或描述符修改。 微型驱动程序应在进行无法与处理同时发生的任何更改之前获取处理互斥体。

与其他两种类型的互斥体一样,处理互斥体不是以递归方式获取的。 这意味着,如果微型驱动程序在处理时尝试获取处理互斥体,则会发生死锁。

请勿使用处理互斥体长时间挂起处理。 而是使用 KSGATEXxx 函数直接操作处理控制门。

已获取处理互斥体的线程随后不应尝试获取筛选器控件互斥体。

若要操作处理互斥体,请使用以下函数:

KsFilterAcquireProcessingMutexKsPinAcquireProcessingMutexKsFilterReleaseProcessingMutexKsPinReleaseProcessingMutex